All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boqun Feng <boqun.feng@gmail.com>
To: ahmed Ehab <bottaawesome633@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	linux-ext4@vger.kernel.org, Theodore Ts'o <tytso@mit.edu>,
	Andreas Dilger <adilger.kernel@dilger.ca>,
	syzkaller@googlegroups.com,
	"Paul E. McKenney" <paulmck@kernel.org>
Subject: Re: [PATCH] Forcing subclasses to have same name pointer as their parent class
Date: Mon, 8 Jul 2024 16:55:38 -0700	[thread overview]
Message-ID: <Zox8ep23zUSzbFMZ@boqun-archlinux> (raw)
In-Reply-To: <CA+6bSasi4W8zEXu+gqGnpvJpFg0EDeW7fwnFMCqYeFH0hcCGag@mail.gmail.com>

On Tue, Jul 09, 2024 at 02:26:05AM +0300, ahmed Ehab wrote:
> Hi,
>  thanks for the great feedback.
> 
> 
> 
> 
> * Last but not the least, could you try to add a test case in
> lib/locking-selftest.c to ensure the issue you fixed won't        happen
> again? This could be tricky, since you will need to fight        against
> the compiler to generate two string literals with the        same content.*
> I added a test case, but I am not sure how to run this test file as it
> doesn't seem to be part of the kselftests. I compiled it successfully by
> setting the lock debugging option but couldn't get it to run.
> 

My usual approach is: set CONFIG_DEBUG_LOCKING_API_SELFTESTS=y, compile
a kernel, and boot it in qemu, the test result will show in serial log
of the VM. Hope that helps.

Regards,
Boqun

> Regards,
> Ahmed
> 
> On Thu, Jul 4, 2024 at 1:46 AM Boqun Feng <boqun.feng@gmail.com> wrote:
> 
> > Hi,
> >
> > On Thu, Jul 04, 2024 at 03:32:24AM +0300, botta633 wrote:
> > > Preventing Lockdep_set_subclass from creating a new instance of the
> > > string literal. Hence, we will always have the class->name. This
> > > prevents kernel panics when locking up a lock class while comparing
> > > class locks and class names.
> >
> > Good catch! Thanks.
> >
> > >
> > >
> >
> > Please remove the extra blank line here.
> >
> > > Signed-off-by: botta633 <bottaawesome633@gmail.com>
> >
> > Do you mind putting your real name here? Besides, IIUC, this is fixing:
> >
> >         https://syzkaller.appspot.com/bug?extid=7f4a6f7f7051474e40ad
> >
> >
> > , right? If so, there are some more things:
> >
> > *       Copy ext4 and syzkaller people, so that you could get more
> >         tests.
> >
> > *       Since this is a bug fix, could you please figure out which
> >         commit introduces the issue, so that you can put a correct
> >         "Fixes:" tag along with your signed-off-by?
> >
> > *       Since the issue was reported by syzkaller, you should put their
> >         "Reported-by" tag, they have an example in the website I paste
> >         above.
> >
> > *       Please also Cc stable mail list so that the fix can be
> >         backported, you can find the information on "Cc: stable" tag at:
> >
> >                 https://docs.kernel.org/process/stable-kernel-rules.html
> >
> > *       Last but not the least, could you try to add a test case in
> >         lib/locking-selftest.c to ensure the issue you fixed won't
> >         happen again? This could be tricky, since you will need to fight
> >         against the compiler to generate two string literals with the
> >         same content.
> >
> > [Cc ext4 and syzkaller]
> >
> > Regards,
> > Boqun
> >
> > > ---
> > >  include/linux/lockdep.h | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
> > > index 08b0d1d9d78b..df8fa5929de7 100644
> > > --- a/include/linux/lockdep.h
> > > +++ b/include/linux/lockdep.h
> > > @@ -173,7 +173,7 @@ static inline void lockdep_init_map(struct
> > lockdep_map *lock, const char *name,
> > >                             (lock)->dep_map.lock_type)
> > >
> > >  #define lockdep_set_subclass(lock, sub)
> >       \
> > > -     lockdep_init_map_type(&(lock)->dep_map, #lock,
> > (lock)->dep_map.key, sub,\
> > > +     lockdep_init_map_type(&(lock)->dep_map, (lock)->dep_map.name,
> > (lock)->dep_map.key, sub,\
> > >                             (lock)->dep_map.wait_type_inner,          \
> > >                             (lock)->dep_map.wait_type_outer,          \
> > >                             (lock)->dep_map.lock_type)
> > > --
> > > 2.45.2
> > >
> >

      parent reply	other threads:[~2024-07-09  0:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-04  0:32 [PATCH] Forcing subclasses to have same name pointer as their parent class botta633
2024-07-03 22:45 ` Boqun Feng
     [not found]   ` <CA+6bSasi4W8zEXu+gqGnpvJpFg0EDeW7fwnFMCqYeFH0hcCGag@mail.gmail.com>
2024-07-08 23:55     ` Boqun Feng [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zox8ep23zUSzbFMZ@boqun-archlinux \
    --to=boqun.feng@gmail.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=bottaawesome633@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=syzkaller@googlegroups.com \
    --cc=tytso@mit.edu \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.