Re: [target:for-next 51/51] ERROR: "__cmpxchg_called_with_bad_pointer" undefined!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 29, 2014 at 02:01:38AM -0800, Nicholas A. Bellinger wrote:

> On Wed, 2014-01-29 at 14:51 +0800, kbuild test robot wrote:
> > tree:   git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git for-next
> > head:   7769401d351d54d5cbcb6400ec60c0b916e87a7e
> > commit: 7769401d351d54d5cbcb6400ec60c0b916e87a7e [51/51] target: Fix percpu_ref_put race in transport_lun_remove_cmd
> > config: make ARCH=mips allmodconfig
> > 
> > All error/warnings:
> > 
> > >> ERROR: "__cmpxchg_called_with_bad_pointer" undefined!
> > 
> 
> So MIPS doesn't like typedef bool as 1-byte char being used for cmpxchg
> -> ll/sc instructions..
> 
> Fixing this up now by making se_cmd->lun_ref_active use a single word
> instead.

Thanks, looking good.

Note that this is a hardware restriction on LL/SC rsp. LLD/SCD which only
operate on natually aligned four rsp. eight byte operands.  Could fixed
but would slow down and inflate every invocation of cmpxchg() which is
currently an inline function and I feel a bit uneasy about hardware
behaviour when mixing LL/SC rsp. LLD/SCD with conventional loads and
stores.

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux