Problem booting Adaptec Ultra 320 driver with discontigmem support.

From: Xavier Bru <xavier.bru_at_bull.net>
Date: 2003-12-04 23:37:21
Hello, all

Running  2.6.0-test11 with Adaptec Ultra 320 driver that provides full 
64-bit support
we hit a BUG in blk_queue_bounce_limit() due to physical address greater 
than allowed by the dma mask.
Having a look into the code, it appears that the computation to allow 
full 64-bit support takes in account the size of the installed memory 
instead of the max physical address of the platform.
For example on  a platform with 32GB of memory distributed in 1 TB 
physical address space, only 39-bits physical addresses are supported 
instead of the 40 bits needed.

IOSAPIC: vector 54 -> CPU 0x04e0, enabled
scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 1.3.9
        <Adaptec 39320D Ultra320 SCSI adapter>
        aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 101-133Mhz, 512 SCBs

kernel BUG at drivers/block/ll_rw_blk.c:271!
swapper[1]: bugcheck! 0 [1]

Herafter a patch that fixes the problem:

--- linux-2.6.0-test11/drivers/scsi/aic7xxx/aic79xx_osm.c    2003-11-24 
02:32:03.000000000 +0100
+++ linux-2.6.0-test11.new/drivers/scsi/aic7xxx/aic79xx_osm.c    
2003-12-03 14:39:51.000000000 +0100
@@ -62,6 +62,7 @@
 
 #include <linux/mm.h>        /* For fetching system memory size */
 
+extern unsigned long blk_max_pfn;
 /*
  * Lock protecting manipulation of the ahd softc list.
  */
@@ -2158,10 +2159,9 @@
 uint64_t
 ahd_linux_get_memsize(void)
 {
-    struct sysinfo si;
-
-    si_meminfo(&si);
-    return ((uint64_t)si.totalram << PAGE_SHIFT);
+    /* Need to take in account the max physical address in case
+     * of discontiguous memory. */
+    return ((uint64_t)blk_max_low_pfn << PAGE_SHIFT);
 }
 
 /*

-- 

 Sincères salutations.
_____________________________________________________________________
 
Xavier BRU                 BULL ISD/R&D/INTEL office:     FREC B1-422
tel : +33 (0)4 76 29 77 45                    http://www-frec.bull.fr
fax : +33 (0)4 76 29 77 70                 mailto:Xavier.Bru@bull.net
addr: BULL, 1 rue de Provence, BP 208, 38432 Echirolles Cedex, FRANCE
_____________________________________________________________________


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Dec 4 07:36:39 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:20 EST