• Arnd Bergmann's avatar
    scsi: BusLogic: Remove bus_to_virt() · 9f7c2232
    Arnd Bergmann authored
    The BusLogic driver is the last remaining driver that relies on the
    deprecated bus_to_virt() function, which in turn only works on a few
    architectures, and is incompatible with both swiotlb and iommu support.
    
    Before commit 391e2f25 ("[SCSI] BusLogic: Port driver to 64-bit."), the
    driver had a dependency on x86-32, presumably because of this
    problem. However, the change introduced another bug that made it still
    impossible to use the driver on any 64-bit machine.
    
    This was in turn fixed in commit 56f39614 ("scsi: BusLogic: Fix 64-bit
    system enumeration error for Buslogic"), 8 years later, which shows that
    there are not a lot of users.
    
    Maciej is still using the driver on 32-bit hardware, and Khalid mentioned
    that the driver works with the device emulation used in VirtualBox and
    VMware. Both of those only emulate it for Windows 2000 and older operating
    systems that did not ship with the better LSI logic driver.
    
    Do a minimum fix that searches through the list of descriptors to find one
    that matches the bus address. This is clearly as inefficient as was
    indicated in the code comment about the lack of a bus_to_virt()
    replacement. A better fix would likely involve changing out the entire
    descriptor allocation for a simpler one, but that would be much more
    invasive.
    
    Link: https://lore.kernel.org/r/20220624155226.2889613-2-arnd@kernel.org
    Cc: Maciej W. Rozycki <macro@orcam.me.uk>
    Cc: Matt Wang <wwentao@vmware.com>
    Tested-by: default avatarKhalid Aziz <khalid@gonehiking.org>
    Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Acked-by: default avatarKhalid Aziz <khalid@gonehiking.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    9f7c2232
Kconfig 51.2 KB