Re: [PATCH 2/2] MIPS: make kgdb depend on FPU support

From: Daniel Thompson
Date: Wed Feb 10 2021 - 06:42:49 EST


On Mon, Feb 08, 2021 at 06:03:08PM +0100, Maciej W. Rozycki wrote:
> On Fri, 22 Jan 2021, Arnd Bergmann wrote:
>
> > From: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > kgdb fails to build when the FPU support is disabled:
> >
> > arch/mips/kernel/kgdb.c: In function 'dbg_set_reg':
> > arch/mips/kernel/kgdb.c:147:35: error: 'struct thread_struct' has no member named 'fpu'
> > 147 | memcpy((void *)&current->thread.fpu.fcr31, mem,
> > | ^
> > arch/mips/kernel/kgdb.c:155:34: error: 'struct thread_struct' has no member named 'fpu'
> > 155 | memcpy((void *)&current->thread.fpu.fpr[fp_reg], mem,
> >
> > This is only relevant for CONFIG_EXPERT=y, so disallowing it
> > in Kconfig is an easier workaround than fixing it properly.
>
> Wrapping the relevant parts of this file into #ifdef MIPS_FP_SUPPORT
> would be as easy though and would qualify as a proper fix given that we
> have no XML description support for the MIPS target (so we need to supply
> the inexistent registers in the protocol; or maybe we can return NULL in
> `dbg_get_reg' to get them padded out in the RSP packet, I haven't checked
> if generic KGDB code supports this feature).

Returning NULL should be fine.

The generic code will cope OK. The values in the f.p. registers may
act a little odd if gdb uses a 'G' packet to set them to non-zero values
(since kgdb will cache the values gdb sent it) but the developer
operating the debugger will probably figure out what is going on without
too much pain.


Daniel.