Subject: Oops in netxen driver, kernel 2.6.20.10

From: Chuck Ebbert <[email-masked]>
Date: Wed, 16 May 2007 16:39:46 -0400

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=240190

drivers/net/netxen/netxen_nic_init.c:

                        if (ADDR_IN_WINDOW1(off)) {
                                writel(buf[i].data,
                                       NETXEN_CRB_NORMALIZE(adapter, off));
                        } else {
                                netxen_nic_pci_change_crbwindow(adapter, 0);
Line 566 ==>                    writel(buf[i].data,
                                       pci_base_offset(adapter, off));

                                netxen_nic_pci_change_crbwindow(adapter, 1);
                        }

pci_base_offset() returned NULL and the result was not checked, causing NULL
dereference.

offset is in RBX (== 0x0000000105ffffff) and is out of the expected range.