[POWERPC] Add spinlock to request_phb_iospace()
request_phb_iospace() can be called from different CPUs at init time (at least with my next patch) and thus needs a spinlock. As for the next patch, this is a temporary workaround for 2.6.22 issues until my rewrite of IO mappings is ready (for 2.6.23) Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
6a32d085ae
commit
017e3c53f1
@ -322,6 +322,8 @@ EXPORT_SYMBOL(__ioremap);
|
||||
EXPORT_SYMBOL(iounmap);
|
||||
EXPORT_SYMBOL(__iounmap);
|
||||
|
||||
static DEFINE_SPINLOCK(phb_io_lock);
|
||||
|
||||
void __iomem * reserve_phb_iospace(unsigned long size)
|
||||
{
|
||||
void __iomem *virt_addr;
|
||||
@ -329,8 +331,10 @@ void __iomem * reserve_phb_iospace(unsigned long size)
|
||||
if (phbs_io_bot >= IMALLOC_BASE)
|
||||
panic("reserve_phb_iospace(): phb io space overflow\n");
|
||||
|
||||
spin_lock(&phb_io_lock);
|
||||
virt_addr = (void __iomem *) phbs_io_bot;
|
||||
phbs_io_bot += size;
|
||||
spin_unlock(&phb_io_lock);
|
||||
|
||||
return virt_addr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user