Re: [PATCH v3] kdb: Simplify kdb commands registration

From: Daniel Thompson
Date: Mon Feb 08 2021 - 08:49:21 EST


On Mon, Feb 08, 2021 at 03:18:19PM +0530, Sumit Garg wrote:
> On Mon, 8 Feb 2021 at 15:13, Daniel Thompson <daniel.thompson@xxxxxxxxxx> wrote:
> >
> > On Fri, Jan 29, 2021 at 03:47:07PM +0530, Sumit Garg wrote:
> > > @@ -1011,25 +1005,17 @@ int kdb_parse(const char *cmdstr)
> > > ++argv[0];
> > > }
> > >
> > > - for_each_kdbcmd(tp, i) {
> > > - if (tp->cmd_name) {
> > > - /*
> > > - * If this command is allowed to be abbreviated,
> > > - * check to see if this is it.
> > > - */
> > > -
> > > - if (tp->cmd_minlen
> > > - && (strlen(argv[0]) <= tp->cmd_minlen)) {
> > > - if (strncmp(argv[0],
> > > - tp->cmd_name,
> > > - tp->cmd_minlen) == 0) {
> > > - break;
> > > - }
> > > - }
> > > -
> > > - if (strcmp(argv[0], tp->cmd_name) == 0)
> > > + list_for_each_entry(tp, &kdb_cmds_head, list_node) {
> > > + /*
> > > + * If this command is allowed to be abbreviated,
> > > + * check to see if this is it.
> > > + */
> > > + if (tp->cmd_minlen && (strlen(argv[0]) <= tp->cmd_minlen) &&
> > > + (strncmp(argv[0], tp->cmd_name, tp->cmd_minlen) == 0))
> > > break;
> >
> > Looks like you forgot to unindent this line.
> >
> > I will fix it up but... checkpatch would have found this.
> >
>
> Ah, I missed to run checkpatch on v3. Thanks for fixing this up.

Unfortunately, it's not just checkpatch. This patch also causes a
large number of test suite regressions. In particular it looks like
kgdbwait does not work with this patch applied.

The problem occurs on multiple architectures all with
close-to-defconfig kernels. However to share one specific
failure, x86_64_defconfig plus the following is not bootable:

../scripts/config --enable DEBUG_INFO --enable DEBUG_FS \
--enable KALLSYMS_ALL --enable MAGIC_SYSRQ --enable KGDB \
--enable KGDB_TESTS --enable KGDB_KDB --enable KDB_KEYBOARD \
--enable LKDTM

Try:

qemu-system-x86_64 \
-enable-kvm -m 1G -smp 2 -nographic
-kernel arch/x86/boot/bzImage \
-append "console=ttyS0,115200 kgdboc=ttyS0 kgdbwait"


Daniel.