diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/skge.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 8c674cdecd7b..7f8e8dd0fc6e 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2177,15 +2177,17 @@ static int skge_up(struct net_device *dev) | |||
2177 | 2177 | ||
2178 | memset(skge->mem, 0, skge->mem_size); | 2178 | memset(skge->mem, 0, skge->mem_size); |
2179 | 2179 | ||
2180 | if ((err = skge_ring_alloc(&skge->rx_ring, skge->mem, skge->dma))) | 2180 | err = skge_ring_alloc(&skge->rx_ring, skge->mem, skge->dma); |
2181 | if (err) | ||
2181 | goto free_pci_mem; | 2182 | goto free_pci_mem; |
2182 | 2183 | ||
2183 | err = skge_rx_fill(skge); | 2184 | err = skge_rx_fill(skge); |
2184 | if (err) | 2185 | if (err) |
2185 | goto free_rx_ring; | 2186 | goto free_rx_ring; |
2186 | 2187 | ||
2187 | if ((err = skge_ring_alloc(&skge->tx_ring, skge->mem + rx_size, | 2188 | err = skge_ring_alloc(&skge->tx_ring, skge->mem + rx_size, |
2188 | skge->dma + rx_size))) | 2189 | skge->dma + rx_size); |
2190 | if (err) | ||
2189 | goto free_rx_ring; | 2191 | goto free_rx_ring; |
2190 | 2192 | ||
2191 | skge->tx_avail = skge->tx_ring.count - 1; | 2193 | skge->tx_avail = skge->tx_ring.count - 1; |
@@ -2308,9 +2310,9 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev) | |||
2308 | return NETDEV_TX_OK; | 2310 | return NETDEV_TX_OK; |
2309 | 2311 | ||
2310 | if (!spin_trylock(&skge->tx_lock)) { | 2312 | if (!spin_trylock(&skge->tx_lock)) { |
2311 | /* Collision - tell upper layer to requeue */ | 2313 | /* Collision - tell upper layer to requeue */ |
2312 | return NETDEV_TX_LOCKED; | 2314 | return NETDEV_TX_LOCKED; |
2313 | } | 2315 | } |
2314 | 2316 | ||
2315 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { | 2317 | if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) { |
2316 | if (!netif_queue_stopped(dev)) { | 2318 | if (!netif_queue_stopped(dev)) { |
@@ -2709,8 +2711,8 @@ static int skge_poll(struct net_device *dev, int *budget) | |||
2709 | if (control & BMU_OWN) | 2711 | if (control & BMU_OWN) |
2710 | break; | 2712 | break; |
2711 | 2713 | ||
2712 | skb = skge_rx_get(skge, e, control, rd->status, | 2714 | skb = skge_rx_get(skge, e, control, rd->status, |
2713 | le16_to_cpu(rd->csum2)); | 2715 | le16_to_cpu(rd->csum2)); |
2714 | if (likely(skb)) { | 2716 | if (likely(skb)) { |
2715 | dev->last_rx = jiffies; | 2717 | dev->last_rx = jiffies; |
2716 | netif_receive_skb(skb); | 2718 | netif_receive_skb(skb); |
@@ -3240,13 +3242,15 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3240 | struct skge_hw *hw; | 3242 | struct skge_hw *hw; |
3241 | int err, using_dac = 0; | 3243 | int err, using_dac = 0; |
3242 | 3244 | ||
3243 | if ((err = pci_enable_device(pdev))) { | 3245 | err = pci_enable_device(pdev); |
3246 | if (err) { | ||
3244 | printk(KERN_ERR PFX "%s cannot enable PCI device\n", | 3247 | printk(KERN_ERR PFX "%s cannot enable PCI device\n", |
3245 | pci_name(pdev)); | 3248 | pci_name(pdev)); |
3246 | goto err_out; | 3249 | goto err_out; |
3247 | } | 3250 | } |
3248 | 3251 | ||
3249 | if ((err = pci_request_regions(pdev, DRV_NAME))) { | 3252 | err = pci_request_regions(pdev, DRV_NAME); |
3253 | if (err) { | ||
3250 | printk(KERN_ERR PFX "%s cannot obtain PCI resources\n", | 3254 | printk(KERN_ERR PFX "%s cannot obtain PCI resources\n", |
3251 | pci_name(pdev)); | 3255 | pci_name(pdev)); |
3252 | goto err_out_disable_pdev; | 3256 | goto err_out_disable_pdev; |
@@ -3298,7 +3302,8 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3298 | goto err_out_free_hw; | 3302 | goto err_out_free_hw; |
3299 | } | 3303 | } |
3300 | 3304 | ||
3301 | if ((err = request_irq(pdev->irq, skge_intr, SA_SHIRQ, DRV_NAME, hw))) { | 3305 | err = request_irq(pdev->irq, skge_intr, SA_SHIRQ, DRV_NAME, hw); |
3306 | if (err) { | ||
3302 | printk(KERN_ERR PFX "%s: cannot assign irq %d\n", | 3307 | printk(KERN_ERR PFX "%s: cannot assign irq %d\n", |
3303 | pci_name(pdev), pdev->irq); | 3308 | pci_name(pdev), pdev->irq); |
3304 | goto err_out_iounmap; | 3309 | goto err_out_iounmap; |
@@ -3316,7 +3321,8 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3316 | if ((dev = skge_devinit(hw, 0, using_dac)) == NULL) | 3321 | if ((dev = skge_devinit(hw, 0, using_dac)) == NULL) |
3317 | goto err_out_led_off; | 3322 | goto err_out_led_off; |
3318 | 3323 | ||
3319 | if ((err = register_netdev(dev))) { | 3324 | err = register_netdev(dev); |
3325 | if (err) { | ||
3320 | printk(KERN_ERR PFX "%s: cannot register net device\n", | 3326 | printk(KERN_ERR PFX "%s: cannot register net device\n", |
3321 | pci_name(pdev)); | 3327 | pci_name(pdev)); |
3322 | goto err_out_free_netdev; | 3328 | goto err_out_free_netdev; |