summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorBenjamin Li2008-09-19 01:46:11 +0200
committerDavid S. Miller2008-09-19 01:46:11 +0200
commit27ed9ddfde8d2967076c51815e4ce297c4a18139 (patch)
tree98fff4be1e8c4192d902c402bfb85e282bac53e3 /drivers/net
parentsctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH (diff)
downloadkernel-qcow2-linux-27ed9ddfde8d2967076c51815e4ce297c4a18139.tar.gz
kernel-qcow2-linux-27ed9ddfde8d2967076c51815e4ce297c4a18139.tar.xz
kernel-qcow2-linux-27ed9ddfde8d2967076c51815e4ce297c4a18139.zip
bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned int
The bnx2 driver stores/uses the irq value from the pci_dev internally. But when it stores the irq value, it has been performing an integer demotion. Because of the recent changes made to arch/x86/kernel/io_apic.c, the new method in creating the irq value (using build_irq_for_pci_dev()) has exposed this bug on x86 systems. Because of this demotion when calling request_irq() from bnx2_request_irq(), the driver would get a return code of -EINVAL. This is because the kernel could not find the requested irq descriptor. By storing the irq value properly, the kernel can find the correct irq descriptor and the bnx2 driver can operate normally. Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/bnx2.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index c3c579f98ed0..dfacd31f7ed0 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -6597,7 +6597,7 @@ struct flash_spec {
struct bnx2_irq {
irq_handler_t handler;
- u16 vector;
+ unsigned int vector;
u8 requested;
char name[16];
};