]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix Symbios driver on amd64: Since amd64 has 64 bit pointers but the same
authorse <se@FreeBSD.org>
Fri, 20 Jul 2007 23:02:01 +0000 (23:02 +0000)
committerse <se@FreeBSD.org>
Fri, 20 Jul 2007 23:02:01 +0000 (23:02 +0000)
commit192b9573601035404375d85939b0e5cfd098f7a8
treeb88238747f4a5ae20bf46f5ed3386da50807f750
parent8fdd1a79d0f77863b38e6de503ef08f19bef2e89
Fix Symbios driver on amd64: Since amd64 has 64 bit pointers but the same
4KB pages as i386, data structures that just fit in one page on i386 (and
on 64 bit architectures with 8KB pages) can be distributed over two pages
on amd64. This is a porblem in the case of the Symbios driver, since the
SCRIPTS engine in the SCSI chip operates on physical addresses and needs
physically contiguous memory. Earlier patches used contigmalloc on amd64,
but this version replaces part of a structure by a pointer to that data.
In order to not introduce an extra indirection for other architectures,
the change has been made conditional on __amd64__.

Earlier attempts to repair this problem are removed (i.e. the macros that
made amd64 use contigmalloc). The fix was submitted by Jan Mikkelsen and
modified by me to only affect amd64.

PR: 89550
Submitted by: janm at transactionware dot com (Jan Mikkelsen)
Approved by: re (Hiroki Sato)
MFC after: 2 weeks
sys/dev/sym/sym_hipd.c