X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fhwspinlock%2Fhwspinlock_core.c;h=d50c701b19d678e9998319be36a492bb3a8eba6d;hb=ec24f1ae50a370c9ef7b7166156b79b4d4feee5f;hp=52f708bcf77f397952ea0f278ce5b161780e076a;hpb=ca6e4405779ed56ebac941570615abd667c72c02;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c index 52f708bcf77f..d50c701b19d6 100644 --- a/drivers/hwspinlock/hwspinlock_core.c +++ b/drivers/hwspinlock/hwspinlock_core.c @@ -313,6 +313,10 @@ int of_hwspin_lock_get_id(struct device_node *np, int index) hwlock = radix_tree_deref_slot(slot); if (unlikely(!hwlock)) continue; + if (radix_tree_is_indirect_ptr(hwlock)) { + slot = radix_tree_iter_retry(&iter); + continue; + } if (hwlock->bank->dev->of_node == args.np) { ret = 0;