aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.c
diff options
context:
space:
mode:
authorSivakumar Subramani <Sivakumar.Subramani@neterion.com>2007-02-24 02:01:31 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-27 04:27:11 -0500
commitac1f90d6f1267b916c47cc5a033ef5ec1baf4280 (patch)
tree92dde369ee9bfafd00ab8e5b12bc4d77a7b4b674 /drivers/net/s2io.c
parent926930b202d56c3dfb6aea0a0c6bfba2b87a8c03 (diff)
S2IO: Making LED off during LINK_DOWN notification.
- Turning off LED for LINK_DOWN notification - Return from rxd_owner_bit_reset function if call to set_rxd_buffer_pointer fails with ENOMEM Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/s2io.c')
-rw-r--r--drivers/net/s2io.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 89881aa2fc31..7c3551bad14c 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -4127,6 +4127,11 @@ static void s2io_txpic_intr_handle(struct s2io_nic *sp)
4127 val64 &= ~GPIO_INT_MASK_LINK_UP; 4127 val64 &= ~GPIO_INT_MASK_LINK_UP;
4128 val64 |= GPIO_INT_MASK_LINK_DOWN; 4128 val64 |= GPIO_INT_MASK_LINK_DOWN;
4129 writeq(val64, &bar0->gpio_int_mask); 4129 writeq(val64, &bar0->gpio_int_mask);
4130
4131 /* turn off LED */
4132 val64 = readq(&bar0->adapter_control);
4133 val64 = val64 &(~ADAPTER_LED_ON);
4134 writeq(val64, &bar0->adapter_control);
4130 } 4135 }
4131 } 4136 }
4132 val64 = readq(&bar0->gpio_int_mask); 4137 val64 = readq(&bar0->gpio_int_mask);
@@ -6124,10 +6129,13 @@ static int rxd_owner_bit_reset(struct s2io_nic *sp)
6124 rx_blocks[j].rxds[k].virt_addr; 6129 rx_blocks[j].rxds[k].virt_addr;
6125 if(sp->rxd_mode >= RXD_MODE_3A) 6130 if(sp->rxd_mode >= RXD_MODE_3A)
6126 ba = &mac_control->rings[i].ba[j][k]; 6131 ba = &mac_control->rings[i].ba[j][k];
6127 set_rxd_buffer_pointer(sp, rxdp, ba, 6132 if (set_rxd_buffer_pointer(sp, rxdp, ba,
6128 &skb,(u64 *)&temp0_64, 6133 &skb,(u64 *)&temp0_64,
6129 (u64 *)&temp1_64, 6134 (u64 *)&temp1_64,
6130 (u64 *)&temp2_64, size); 6135 (u64 *)&temp2_64,
6136 size) == ENOMEM) {
6137 return 0;
6138 }
6131 6139
6132 set_rxd_buffer_size(sp, rxdp, size); 6140 set_rxd_buffer_size(sp, rxdp, size);
6133 wmb(); 6141 wmb();