aic79xx - wrong max memory at driver init

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

 



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);
 }

 /*


[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