diff options
| author | Dave Airlie <airlied@redhat.com> | 2012-05-07 16:09:09 +0100 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2012-05-07 16:09:35 +0100 | 
| commit | 4f256e8aa3eda15c11c3cec3ec5336e1fc579cbd (patch) | |
| tree | 33c02b5e18e79756005a3edfa7c862a47de668d5 /arch/powerpc/sysdev/mpic_msgr.c | |
| parent | 4086b1e2b19729eebf632073b9d4ab811726d8eb (diff) | |
| parent | dc257cf154be708ecc47b8b89c12ad8cd2cc35e4 (diff) | |
| download | olio-linux-3.10-4f256e8aa3eda15c11c3cec3ec5336e1fc579cbd.tar.xz olio-linux-3.10-4f256e8aa3eda15c11c3cec3ec5336e1fc579cbd.zip  | |
Merge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next
Daniel prepared this branch with a back-merge as git was getting
very confused about changes in intel_display.c
Diffstat (limited to 'arch/powerpc/sysdev/mpic_msgr.c')
| -rw-r--r-- | arch/powerpc/sysdev/mpic_msgr.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/powerpc/sysdev/mpic_msgr.c b/arch/powerpc/sysdev/mpic_msgr.c index 6e7fa386e76..483d8fa72e8 100644 --- a/arch/powerpc/sysdev/mpic_msgr.c +++ b/arch/powerpc/sysdev/mpic_msgr.c @@ -27,6 +27,7 @@  static struct mpic_msgr **mpic_msgrs;  static unsigned int mpic_msgr_count; +static DEFINE_RAW_SPINLOCK(msgrs_lock);  static inline void _mpic_msgr_mer_write(struct mpic_msgr *msgr, u32 value)  { @@ -56,12 +57,11 @@ struct mpic_msgr *mpic_msgr_get(unsigned int reg_num)  	if (reg_num >= mpic_msgr_count)  		return ERR_PTR(-ENODEV); -	raw_spin_lock_irqsave(&msgr->lock, flags); -	if (mpic_msgrs[reg_num]->in_use == MSGR_FREE) { -		msgr = mpic_msgrs[reg_num]; +	raw_spin_lock_irqsave(&msgrs_lock, flags); +	msgr = mpic_msgrs[reg_num]; +	if (msgr->in_use == MSGR_FREE)  		msgr->in_use = MSGR_INUSE; -	} -	raw_spin_unlock_irqrestore(&msgr->lock, flags); +	raw_spin_unlock_irqrestore(&msgrs_lock, flags);  	return msgr;  } @@ -228,7 +228,7 @@ static __devinit int mpic_msgr_probe(struct platform_device *dev)  		reg_number = block_number * MPIC_MSGR_REGISTERS_PER_BLOCK + i;  		msgr->base = msgr_block_addr + i * MPIC_MSGR_STRIDE; -		msgr->mer = msgr->base + MPIC_MSGR_MER_OFFSET; +		msgr->mer = (u32 *)((u8 *)msgr->base + MPIC_MSGR_MER_OFFSET);  		msgr->in_use = MSGR_FREE;  		msgr->num = i;  		raw_spin_lock_init(&msgr->lock);  |