diff options
| author | Grant Likely <grant.likely@secretlab.ca> | 2012-05-08 11:35:37 -0600 | 
|---|---|---|
| committer | Grant Likely <grant.likely@secretlab.ca> | 2012-05-08 11:35:37 -0600 | 
| commit | 7b96c686223a5c902d6a59c7d178f3904f0ab757 (patch) | |
| tree | fe328ed56ad3719de3cfebad72ef74e34f1ed92b /arch/powerpc/sysdev/mpic_msgr.c | |
| parent | f141ed65f256ec036c7fba604da6b7c448096ef9 (diff) | |
| parent | d48b97b403d23f6df0b990cee652bdf9a52337a3 (diff) | |
| download | olio-linux-3.10-7b96c686223a5c902d6a59c7d178f3904f0ab757.tar.xz olio-linux-3.10-7b96c686223a5c902d6a59c7d178f3904f0ab757.zip  | |
Merge tag 'v3.4-rc6' into gpio/next
Linux 3.4-rc6
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);  |