On Fri, Sep 18, 2020 at 12:01:12PM +0200, peterz@xxxxxxxxxxxxx wrote: > @@ -198,7 +198,9 @@ EXPORT_SYMBOL_GPL(__percpu_down_read); > */ > static bool readers_active_check(struct percpu_rw_semaphore *sem) > { > - if (per_cpu_sum(*sem->read_count) != 0) > + u64 sum = per_cpu_sum(*(u64 *)sem->read_count); > + > + if (sum + (sum >> 32)) That obviously wants to be: if ((u32)(sum + (sum >> 32))) > return false; > > /*