diff options
author | Santiago Leon <santil@us.ibm.com> | 2006-10-03 13:24:34 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-10-05 06:43:23 -0400 |
commit | 4347ef15f76dca33ae8da769d6900a468253bda2 (patch) | |
tree | d4453425aa3fe5f066a2a742fb9eafd2571c2091 /drivers/net | |
parent | 6b4223748895ed5b200c8049231567ea399fc0c2 (diff) |
[PATCH] ibmveth: kdump interrupt fix
This patch fixes a race that panics the kernel when opening the
device after a kdump. Without this patch there is a window where the
hypervisor can send an interrupt before all the structures for the
kdump ibmveth module are ready (because the hypervisor is not aware
that the partition crashed and that the virtual driver is reloading).
We close this window by disabling the interrupts before registering
the adapter to the hypervisor.
This patch depends on the "ibmveth: Harden driver initilisation" patch.
Signed-off-by: Santiago Leon <santil@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ibmveth.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index bd79d67c0e97..2ec49d254530 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c | |||
@@ -527,6 +527,8 @@ static int ibmveth_open(struct net_device *netdev) | |||
527 | ibmveth_debug_printk("filter list @ 0x%p\n", adapter->filter_list_addr); | 527 | ibmveth_debug_printk("filter list @ 0x%p\n", adapter->filter_list_addr); |
528 | ibmveth_debug_printk("receive q @ 0x%p\n", adapter->rx_queue.queue_addr); | 528 | ibmveth_debug_printk("receive q @ 0x%p\n", adapter->rx_queue.queue_addr); |
529 | 529 | ||
530 | h_vio_signal(adapter->vdev->unit_address, VIO_IRQ_DISABLE); | ||
531 | |||
530 | lpar_rc = ibmveth_register_logical_lan(adapter, rxq_desc, mac_address); | 532 | lpar_rc = ibmveth_register_logical_lan(adapter, rxq_desc, mac_address); |
531 | 533 | ||
532 | if(lpar_rc != H_SUCCESS) { | 534 | if(lpar_rc != H_SUCCESS) { |