diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/pcnet32.c | 5 | ||||
-rw-r--r-- | drivers/net/sk98lin/skge.c | 12 | ||||
-rw-r--r-- | drivers/net/skge.c | 10 |
3 files changed, 13 insertions, 14 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index be319229f543..8f6cf8c896a4 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
@@ -1251,12 +1251,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) | |||
1251 | 1251 | ||
1252 | if (memcmp(promaddr, dev->dev_addr, 6) | 1252 | if (memcmp(promaddr, dev->dev_addr, 6) |
1253 | || !is_valid_ether_addr(dev->dev_addr)) { | 1253 | || !is_valid_ether_addr(dev->dev_addr)) { |
1254 | #ifndef __powerpc__ | ||
1255 | if (is_valid_ether_addr(promaddr)) { | 1254 | if (is_valid_ether_addr(promaddr)) { |
1256 | #else | ||
1257 | if (!is_valid_ether_addr(dev->dev_addr) | ||
1258 | && is_valid_ether_addr(promaddr)) { | ||
1259 | #endif | ||
1260 | if (pcnet32_debug & NETIF_MSG_PROBE) { | 1255 | if (pcnet32_debug & NETIF_MSG_PROBE) { |
1261 | printk(" warning: CSR address invalid,\n"); | 1256 | printk(" warning: CSR address invalid,\n"); |
1262 | printk(KERN_INFO " using instead PROM address of"); | 1257 | printk(KERN_INFO " using instead PROM address of"); |
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c index e3bdb5836001..e5591d33dd28 100644 --- a/drivers/net/sk98lin/skge.c +++ b/drivers/net/sk98lin/skge.c | |||
@@ -815,7 +815,7 @@ uintptr_t VNextDescr; /* the virtual bus address of the next descriptor */ | |||
815 | /* set the pointers right */ | 815 | /* set the pointers right */ |
816 | pDescr->VNextRxd = VNextDescr & 0xffffffffULL; | 816 | pDescr->VNextRxd = VNextDescr & 0xffffffffULL; |
817 | pDescr->pNextRxd = pNextDescr; | 817 | pDescr->pNextRxd = pNextDescr; |
818 | pDescr->TcpSumStarts = 0; | 818 | if (!IsTx) pDescr->TcpSumStarts = ETH_HLEN << 16 | ETH_HLEN; |
819 | 819 | ||
820 | /* advance one step */ | 820 | /* advance one step */ |
821 | pPrevDescr = pDescr; | 821 | pPrevDescr = pDescr; |
@@ -2163,10 +2163,12 @@ rx_start: | |||
2163 | skb_put(pMsg, FrameLength); | 2163 | skb_put(pMsg, FrameLength); |
2164 | } /* frame > SK_COPY_TRESHOLD */ | 2164 | } /* frame > SK_COPY_TRESHOLD */ |
2165 | 2165 | ||
2166 | if (pRxPort->RxCsum) { | 2166 | #ifdef USE_SK_RX_CHECKSUM |
2167 | pMsg->csum = pRxd->TcpSums; | 2167 | pMsg->csum = pRxd->TcpSums & 0xffff; |
2168 | pMsg->ip_summed = CHECKSUM_HW; | 2168 | pMsg->ip_summed = CHECKSUM_HW; |
2169 | } | 2169 | #else |
2170 | pMsg->ip_summed = CHECKSUM_NONE; | ||
2171 | #endif | ||
2170 | 2172 | ||
2171 | SK_DBG_MSG(NULL, SK_DBGMOD_DRV, 1,("V")); | 2173 | SK_DBG_MSG(NULL, SK_DBGMOD_DRV, 1,("V")); |
2172 | ForRlmt = SK_RLMT_RX_PROTOCOL; | 2174 | ForRlmt = SK_RLMT_RX_PROTOCOL; |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 716467879b9c..8b6e2a11e28d 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2280,11 +2280,13 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
2280 | } | 2280 | } |
2281 | 2281 | ||
2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { | 2282 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { |
2283 | netif_stop_queue(dev); | 2283 | if (!netif_stopped(dev)) { |
2284 | spin_unlock_irqrestore(&skge->tx_lock, flags); | 2284 | netif_stop_queue(dev); |
2285 | 2285 | ||
2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", | 2286 | printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", |
2287 | dev->name); | 2287 | dev->name); |
2288 | } | ||
2289 | spin_unlock_irqrestore(&skge->tx_lock, flags); | ||
2288 | return NETDEV_TX_BUSY; | 2290 | return NETDEV_TX_BUSY; |
2289 | } | 2291 | } |
2290 | 2292 | ||