• Mark Haverkamp's avatar
    [PATCH] New aacraid driver fixed. · 95152a4c
    Mark Haverkamp authored
    I have the new aacraid driver working on my system now.  The patch is
    against the 2.5.66 updates that you gave me.  I made the following
    changes:
    
    aachba.c aac_scsi_cmd()
    There was a race accessing the scsicmd pointer accessing the host_lock.
    I made a local pointer to the Scsi_Host so the spin_lock_irq after
    aac_read wouldn't panic.  I think that sometimes the I/O would be done
    and the memory freed before returning invalidating the scsicmd pointer.
    I made the same change in aac_io_done in case scsi_done had freed the
    scsicmd memory before returning.
    
    comminit.c aac_alloc_comm()
    AdapterFibsVirtualAddress was set to the virtual address of base.  I
    changed it to set it to the phys address.  I compared this to code
    pointed to by matt domsch on the aacraid devel list on the 5th.  Its
    aac_alloc_comm sets this variable to the phys address.  This fixed the
    probelem where the entry->addr was bad.  Another was to fix it I guess
    would be to leave this change alone and not try to convert the address
    in aac_command_normal.
    
    dpcsup.c aac_response_normal()
    Changed the bus_to_virt to the calculation we talked about last month.
    dpcsup.c aac_command_normal()
    Changed the bus_to_virt to the calculation.
    95152a4c
comminit.c 9.3 KB