Hello Hannes, Aic79xx driver for Adaptec 39320 supports 64-bit addressing, but the initialization code of the driver is wrong: it tests the available memory size instead of testing the maximum available memory address. This is necessary to support servers that provides 1 Terabyte of physical memory space addressing. Attached is the suggested patch (made against 2.6.17, but 2.6.19 is still using the available memory size instead of using the max memory address) to solve this issue. regards -- Fred
Signed-off-by: xavier.bru@xxxxxxxx Signed-off-by: frederic.temporelli@xxxxxxxx --- linux/drivers/scsi/aic7xxx/aic79xx_osm.c 2006-08-23 23:16:33.000000000 +0200 +++ linux-new/drivers/scsi/aic7xxx/aic79xx_osm.c 2006-09-14 16:44:24.000000000 +0200 @@ -62,6 +62,7 @@ #include <linux/mm.h> /* For fetching system memory size */ +extern unsigned long blk_max_pfn; static struct scsi_transport_template *ahd_linux_transport_template = NULL; #include <linux/init.h> /* __setup */ @@ -1175,10 +1176,9 @@ ahd_linux_register_host(struct ahd_softc 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_pfn << PAGE_SHIFT); } /*