Re: [PATCH 09/32] locking/lockdep: Save stack trace for each softirq vector involved

From: Frederic Weisbecker
Date: Wed Feb 13 2019 - 10:19:00 EST


On Tue, Feb 12, 2019 at 09:47:39AM -0800, Linus Torvalds wrote:
> On Tue, Feb 12, 2019 at 9:15 AM Frederic Weisbecker <frederic@xxxxxxxxxx> wrote:
> >
> >
> > +static int save_trace_mask(struct lock_class *class, u64 mask)
> > +{
> > + int bit = 0;
> > +
> > + while (mask) {
> > + long fs = __ffs64(mask) + 1;
> > +
> > + mask >>= fs;
> > + bit += fs;
>
> Same buggy pattern of "ffs+1" and overflow of shift count.

You're right and there are more. I'll unify all that around
a safe iterator.

Thanks.