Re: [v3.6 3/3] iommu/tegra: smmu: Fix unsleepable memory allocation at alloc_pdir()

2012-07-18 Thread Hiroshi Doyu
"joerg.roe...@amd.com" wrote @ Tue, 17 Jul 2012 15:23:00 +0200: > On Tue, Jul 17, 2012 at 02:25:24PM +0200, Hiroshi Doyu wrote: > > The above spin_lock is always necessary. "as->lock" should be held to > > protect "as->pdir_page". Only when "as->pdir_page" is NULL, > > "as->pdir_page" would be a

Re: [v3.6 3/3] iommu/tegra: smmu: Fix unsleepable memory allocation at alloc_pdir()

2012-07-17 Thread joerg.roe...@amd.com
On Tue, Jul 17, 2012 at 02:25:24PM +0200, Hiroshi Doyu wrote: > The above spin_lock is always necessary. "as->lock" should be held to > protect "as->pdir_page". Only when "as->pdir_page" is NULL, > "as->pdir_page" would be allocated in "alloc_pdir()". Without this > lock, the following race could h

Re: [v3.6 3/3] iommu/tegra: smmu: Fix unsleepable memory allocation at alloc_pdir()

2012-07-17 Thread Hiroshi Doyu
Hi Joerg, Joerg Roedel wrote @ Tue, 17 Jul 2012 12:09:01 +0200: > On Mon, Jul 02, 2012 at 02:26:38PM +0300, Hiroshi DOYU wrote: > > > Signed-off-by: Hiroshi DOYU > > Reported-by: Chris Wright > > Cc: Chris Wright > > Acked-by: Stephen Warren > > Applied patch 2 and 3 but not patch 1. The r

Re: [v3.6 3/3] iommu/tegra: smmu: Fix unsleepable memory allocation at alloc_pdir()

2012-07-17 Thread Joerg Roedel
On Mon, Jul 02, 2012 at 02:26:38PM +0300, Hiroshi DOYU wrote: > Signed-off-by: Hiroshi DOYU > Reported-by: Chris Wright > Cc: Chris Wright > Acked-by: Stephen Warren Applied patch 2 and 3 but not patch 1. The resulting conflicts are solved while merging the next branch. Also I am not happy wi

[v3.6 3/3] iommu/tegra: smmu: Fix unsleepable memory allocation at alloc_pdir()

2012-07-02 Thread Hiroshi DOYU
alloc_pdir() is called from smmu_iommu_domain_init() with spin_lock held. memory allocations in alloc_pdir() had to be atomic. Instead of converting into atomic allocation, this patch once releases a lock, does the allocation, holds the lock again and then sees if it's raced or not in order to avoi