grasping why mpt2sas fails with BITS_PER_LONG conditional

2 messages, 2 authors, 2011-07-13 · open the first message on its own page

grasping why mpt2sas fails with BITS_PER_LONG conditional

From: Ayman El-Khashab <hidden>
Date: 2011-07-13 13:02:12

I've had problems with the mpt2sas driver
(drivers/scsi/mpt2sas/mpt2sas_base.c) when using it on my
ppc44x.  Basically, there is a check in the code for
BITS_PER_LONG and certain code is executed if it is 64 vs 32
bit.  I am guessing it is a problem with the driver but it
only shows up on powerpc.  If i force it to take the 64 bit
path it works fine, but if I let the preprocessor decide it
will take the 32 bit path and fail later.  I am not
configuring my kernel as 64 bit, but I am guessing this has
to do with the 36 bit plb bus on these parts.

can somebody enlighten me as to what the right thing to do
here is?

thanks
ayman

Re: grasping why mpt2sas fails with BITS_PER_LONG conditional

From: Josh Boyer <hidden>
Date: 2011-07-13 13:20:12

On Wed, Jul 13, 2011 at 9:02 AM, Ayman El-Khashab [off-list ref] wro=
te:
I've had problems with the mpt2sas driver
(drivers/scsi/mpt2sas/mpt2sas_base.c) when using it on my
ppc44x. =A0Basically, there is a check in the code for
BITS_PER_LONG and certain code is executed if it is 64 vs 32
bit. =A0I am guessing it is a problem with the driver but it
only shows up on powerpc. =A0If i force it to take the 64 bit
path it works fine, but if I let the preprocessor decide it
will take the 32 bit path and fail later. =A0I am not
configuring my kernel as 64 bit, but I am guessing this has
to do with the 36 bit plb bus on these parts.
That seems like a good theory to me.
can somebody enlighten me as to what the right thing to do
here is?
I'd suggest changing the check in the driver away from BITS_PER_LONG
and try making the conditionals based on CONFIG_ARCH_DMA_ADDR_T_64BIT
instead.  On machines with 36-bit physical addressing, that gets set
and it should fall into the code paths you say work.

josh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help