2002-09-16 17:45:01

by Todd Inglett

[permalink] [raw]
Subject: BUG: sym53c8xx_2 and highmem_io

I've been having an interesting experience getting sym53c8xx_2 working
on ppc64 now that highio is in place. Of course ppc64 doesn't need
highio, and it does set blk_nohighio = 1 in setup_arch(). So the
sym53c8xx driver works.

However, sym53c8xx_2 fails because after calling scsi_register() in its
attach it blindly slams highmem_io on (in sym_glue.c). Is this
correct? It seems to me that it should just leave it alone since
scsi_register already handled that.

I might be misunderstanding something here. Is there anything else a
64-bit arch must do for highio? I found we also weren't setting max_pfn
which seemed bad...though maybe irrelevant.

The trivial patch to fix it is attached, but I haven't tested it on a
system that supports highio.

-todd


Attachments:
highio.sym2.patch (597.00 B)

2002-09-16 18:11:48

by Todd Inglett

[permalink] [raw]
Subject: Re: BUG: sym53c8xx_2 and highmem_io

On Mon, 2002-09-16 at 12:49, Todd Inglett wrote:

> However, sym53c8xx_2 fails because after calling scsi_register() in its
> attach it blindly slams highmem_io on (in sym_glue.c). Is this
> correct? It seems to me that it should just leave it alone since
> scsi_register already handled that.

It's interesting that in 2.5 this assignment is still there, but the
driver works. However, scsi_merge.c is very different. I won't pretend
to know the scsi layer that well :).

Maybe the real fix is still somewhere else....

-todd

2002-09-17 19:00:11

by Gérard Roudier

[permalink] [raw]
Subject: Re: BUG: sym53c8xx_2 and highmem_io


On 16 Sep 2002, Todd Inglett wrote:

> I've been having an interesting experience getting sym53c8xx_2 working
> on ppc64 now that highio is in place. Of course ppc64 doesn't need
> highio, and it does set blk_nohighio = 1 in setup_arch(). So the
> sym53c8xx driver works.
>
> However, sym53c8xx_2 fails because after calling scsi_register() in its
> attach it blindly slams highmem_io on (in sym_glue.c). Is this
> correct? It seems to me that it should just leave it alone since
> scsi_register already handled that.

The may-be offending line is not from me. It has been added by a kernel
maintainer at the time the corresponding feature ;-) was added to the
Linux kernel.

Note that this let me think that it may well have been correct at that
time, at least.;)

The greatest guru for all this kinds of alchemy that address complex
beyond expectation architectures is David S. Miller IMO. You may submit
him your suggestion or just sent it to the linux Kernel list.

> I might be misunderstanding something here. Is there anything else a
> 64-bit arch must do for highio? I found we also weren't setting max_pfn
> which seemed bad...though maybe irrelevant.

highio very probably addresses antic 32 bit archs that want to address
more than 4 GB of physical memory, thus Intel PAE band-aid to IA32.

> The trivial patch to fix it is attached, but I haven't tested it on a
> system that supports highio.

Nor I can, since such systems are too expensive for me and, on the other
hand, I don't need nor want to use such horrible hardware.

Regards,
G?rard.