Re: aic7xxx: aic7892(B): BUG: soft lockup detected on CPU#0!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



thomas schorpp wrote:
thomas schorpp wrote:
James Bottomley wrote:
On Sat, 2007-03-24 at 01:51 +0100, thomas schorpp wrote:
no. so the pci layer reports wrong start:
nonsense. it succeeds, confused function return with the error flag:

//      u_long  start;
//      u_long  start = 0xFFEFF000;
        u_long  start = 0x30000000;
        int     error;

        struct resource* ret1;
        error = 0;
//      start = pci_resource_start(ahc->dev_softc, 1);
        if (start != 0) {
                *bus_addr = start;
if ((ret1 = request_mem_region(start, 0x1000, "aic7xxx")) == 0)

You can't do this.  The pci_resource_start is getting the address of
something called a Bus Address Register (BAR) it says in physical
address space where the card is responding ... you can't simply set that
to a random value.

The problem you seem to have is that your system is reporting a BAR
beyond 32 bits (4GB) which the card physically can't use.  This could be
because of a BIOS misconfiguration or because there's a bug in the PCI
subsystem somewhere.

James

understood. waiting for LKML answers... meanwhile i found harder reason for a possible bounds problem with the driver code on x86_64:

if i do:

static int
ahc_linux_pci_reserve_mem_region(struct ahc_softc *ahc,
                                u_long *bus_addr,
                                uint8_t __iomem **maddr)
{
//      u_long  start;
       uint32_t start;

i get no free warning of "*nonexistant* resource" (it cant be nonexistant, cause it was definitely something mapped):

tom1:/usr/src/linux# dmesg |grep -i free
Freeing unused kernel memory: 208k freed

with u_long type start i get it:
Mar 24 03:41:47 localhost kernel: Trying to free nonexistent resource <00000000fffff000-00000000ffffffff>

investigating further...
-

hmm well i dont get the free warning cause
                       release_mem_region(ahc->platform_data->mem_busaddr,
                                          0x1000);
isnt called, the hack fails
       error = ahc_linux_pci_reserve_mem_region(ahc, &base, &maddr);
       if (error == 0) {

ok, so no bounds issue in the driver.


LKML people are ignoring my report, i take this as agreement to a mb bios issue.
will test the card with a latest debian kernel x86_64 netinstall cd on some other amd64 machine, but i need to find some in my reach here.
i need more confirmation before working in the linux pci hal.

y
tom


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux