@Matthieu -- thanks for the updated logs. Thats much better.
>From the logs we can see that this was an illegal access from the
driver:
Jul 14 11:30:05 matth kernel: [ 28.412585] BUG: unable to handle kernel
paging request at 0000000000001000
Jul 14 11:30:05 matth kernel: [ 28.412779] IP: [<ffffffffa019aa64>]
rt28xx_init+0x34/0x4c0 [rt2860sta]
Looking at the driver code it looks like we exploded on the read of
MAC_CSR0:
#define MAC_CSR0 0x1000
[...]
static int rt28xx_init(IN struct net_device *net_dev)
[...]
// Allocate BA Reordering memory
ba_reordering_resource_init(pAd, MAX_REORDERING_MPDU_NUM);
// Make sure MAC gets ready.
index = 0;
do
{
RTMP_IO_READ32(pAd, MAC_CSR0, &MacCsr0);
[...]
If we look at RTMP_IO_READ32() it relies on pAd->CSRBaseAddress being
set:
(*_pV = readl((void *)((_A)->CSRBaseAddress + MAC_CSR0)));
This is only set in RT28XXNetDevInit(), which is called from
rt28xx_probe() whic is called from rt2860_init_one().
>From the stack we can see that we called rt28xx_init() via
MainVirtualIF_open() which is called when we try to configure a network
interface. But for us to have a network device to open we must have
probed the device so we likely ran rt28xx_probe() as it is here we
register the netdev:
INT __devinit rt28xx_probe(
[...]
RT28XXNetDevInit(_dev_p, net_dev, pAd);
[...]
status = register_netdev(net_dev);
[...]
}
So we would have expected RT28XXNetDevInit() to be called already if we
have a netdev. However looking at RT28XXNetDevInit() we can see it
first requests the required pci regions:
BOOLEAN RT28XXNetDevInit(
[...]
if (pci_request_regions(pci_dev, print_name))
[...]
pAd->CSRBaseAddress = (PUCHAR)net_dev->base_addr;
[...]
}
And indeed if we look back at the logs it does appear that the regions
setup may well have failed in this case:
Jul 14 11:30:00 matth kernel: [ 14.222633] rt2860 0000:0a:00.0:
BAR 0: can't reserve mem region [0xbc000000-0xbc00ffff]
We should be checking the return from RT28XXNetDevInit(). Will spin a
patch to add a check here and see if that gets us booting and post some
test kernels shortly.
--
I can't load the new kernel 2.6.31-1 or 2.6.31-2 on Ubuntu Karmic because of a
driver : RT2860
https://bugs.launchpad.net/bugs/396945
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs