[PATCH] New aacraid driver fixed.
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.
Showing
Please register or sign in to comment