[IA64] sba_iommu bug fixes
commit5f6602a101993592b437b801c401443bec65d0cf
authorAlex Williamson <alex.williamson@hp.com>
Mon, 25 Apr 2005 20:14:36 +0000 (25 13:14 -0700)
committerTony Luck <tony.luck@intel.com>
Mon, 25 Apr 2005 20:14:36 +0000 (25 13:14 -0700)
tree603ce367a349b9454a7f6b77953b3ecdf194ec68
parentfde740e4dd4a05ca8957490d468fa9b2770f5bd6
[IA64] sba_iommu bug fixes

   This fixes a couple of bugs in the zx1/sx1000 sba_iommu.  These are
all pretty low likelihood of hitting.  The first problem is a simple off
by one, deep in the sba_alloc_range() error path.  Surrounding that was
a lock ordering problem that could have potentially deadlocked with the
order the locks are grabbed in sba_unmap_single().  I moved the resource
locking into sba_search_bitmap() to prevent this.  Finally, there's a
potential race between unmapping pdir entries and marking incoming DMA
pages clean.  If you see any oddities, please let me know, but I've
tested it pretty thoroughly here.  Tony, please apply.  Thanks,

BTW, many of the options in this driver not on by default are becoming
more and more broken.  I'll be working on some patches to clean them
out, but I wanted to get this bug fix out first.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/hp/common/sba_iommu.c