I have figured out a couple more of the open issues.  I *believe* that this
may correct all of the outstanding issues as of last night (details below),
that is of course assuming that the patches themselves don't break anything.
Also, I am flying a little blind here, as I cannot test live kernels until I
get back home from Christmas, so I don't want to forward patches to Linus
until I get good feedback from a number of people.

    I am enclosing cumulative diffs against 2.3.34.

 1) The problem with HIGHMEM is that in ll_rw_blk.c we are automatically
getting a bounce buffer, but from this it is impossible to do queue
management to combine requests.  I simply added some code to dereference the
thing.  The fix is a bit of a hack, but I don't completely understand
HIGHMEM anyways, so this will do for now, I guess.

 2) Some people were reporting problems scanning the bus with ppa and imm
host adapters.  The problem here was that I was incrementing the host usage
count too soon, and thus hosts that could only queue a single command would
deadlock attempting to scan the bus. I think I have fixed this - it was a
relic of the old way of doing things (and a maintainence problem as well) to
bump the usage count in two separate functions.  I moved this over so that
it is all done in the same place now.  There is a danger that I missed
something here, and thus there is a slight possibility that usage counts
will get out of synch and the system will wedge.

 3) The problem involving > 16 disks was a weird one.  The symptom was that
ext2 didn't recognize the superblock, and as a result it went onto the next
filesystem - iso9660 in this case.  There were spew messages on the console
complaining about the fact that the disk drive didn't support multi-session.
There were actually two bugs - the first one I had fixed some time ago.  I
am not 100% certain that I have fixed the second bug, but I believe the
underlying problem was caused by the incorrect usage of the MINOR() macro in
sd.c.  Whether or not this fully corrects the problem, the second thing was
a real bug.

    4) I fixed a bug in a previous patch which would have probably led to
spurious messages about running low on DMA memory.

-Eric




linux34.diff

Reply via email to