• Alan Cox's avatar
    [SCSI] a100u2w: Convert into Linux style · 4023c474
    Alan Cox authored
    I was investigating strange driver behaviour and thought that readable
    code and proper visible types might help explain why it didn't work right
    the moment a second SCB was outstanding to the controller. I was right
    
    - Cleanup, linuxise, demacro
    - Remove the BSD dual licence on the new work
    - Switch the if ALPHA to if __LP64__. (struct size is then right
    elsewhere) and then to CONFIG_64BIT as per Christoph's request
    - Fix the recursive locking on a reset. This is the only actual real code
    change (I hope ;)).
    
    I'm not clear what the right way to handle the BIOS param stuff is on n
    on x86-32/64. Using phys_to_virt and stuff is ugly and probably doesn't
    make sense elsewhere
    
    Still has a couple of odd things - and there seems to be a commonly shared
    EEPROM handling error several drivers have. Roughly speaking several SCSI
    drivers go
    
    	try and read EEPROM
    	It failed..
    	Write any changes between the default and the data we read
    
    	Which is great as for some paths we've no idea what was in
    before, so each boot won't write it all back, won't checksum but will
    repeat the bug
    
    Also it can still sleep for a second with IRQ off, and there is some
    dubious looking error path locking marked FIXME in case anyone feels
    inspired to work on it. Not a newly introduced bug, and at least its now
    marked.
    Signed-off-by: default avatarAlan Cox <alan@redhat.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    4023c474
a100u2w.c 35.7 KB