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