Message ID | 1589019852-21505-2-git-send-email-sagar.kadam@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix for spin lock bad magic on SiFive UART | expand |
On Sat, 09 May 2020 03:24:12 PDT (-0700), sagar.kadam@sifive.com wrote: > An uninitialised spin lock for sifive serial console raises a bad > magic spin_lock error as reported and discussed here [1]. > Initialising the spin lock resolves the issue. > > The fix is tested on HiFive Unleashed A00 board with Linux 5.7-rc4 > and OpenSBI v0.7 > > [1] https://lore.kernel.org/linux-riscv/b9fe49483a903f404e7acc15a6efbef756db28ae.camel@wdc.com > > Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART") > Reported-by: Atish Patra <Atish.Patra@wdc.com> > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com> > --- > drivers/tty/serial/sifive.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/tty/serial/sifive.c b/drivers/tty/serial/sifive.c > index 13eadcb..0b5110d 100644 > --- a/drivers/tty/serial/sifive.c > +++ b/drivers/tty/serial/sifive.c > @@ -883,6 +883,7 @@ console_initcall(sifive_console_init); > > static void __ssp_add_console_port(struct sifive_serial_port *ssp) > { > + spin_lock_init(&ssp->port.lock); > sifive_serial_console_ports[ssp->port.line] = ssp; > } Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> I'm assuming it's going in through Greg's tree. Thanks!
On Tue, May 12, 2020 at 04:00:23PM -0700, Palmer Dabbelt wrote: > On Sat, 09 May 2020 03:24:12 PDT (-0700), sagar.kadam@sifive.com wrote: > > An uninitialised spin lock for sifive serial console raises a bad > > magic spin_lock error as reported and discussed here [1]. > > Initialising the spin lock resolves the issue. > > > > The fix is tested on HiFive Unleashed A00 board with Linux 5.7-rc4 > > and OpenSBI v0.7 > > > > [1] https://lore.kernel.org/linux-riscv/b9fe49483a903f404e7acc15a6efbef756db28ae.camel@wdc.com > > > > Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART") > > Reported-by: Atish Patra <Atish.Patra@wdc.com> > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com> > > --- > > drivers/tty/serial/sifive.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/tty/serial/sifive.c b/drivers/tty/serial/sifive.c > > index 13eadcb..0b5110d 100644 > > --- a/drivers/tty/serial/sifive.c > > +++ b/drivers/tty/serial/sifive.c > > @@ -883,6 +883,7 @@ console_initcall(sifive_console_init); > > > > static void __ssp_add_console_port(struct sifive_serial_port *ssp) > > { > > + spin_lock_init(&ssp->port.lock); > > sifive_serial_console_ports[ssp->port.line] = ssp; > > } > > Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> > Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> > > I'm assuming it's going in through Greg's tree. Sure, I'll be glad to take it. greg k-h
Hello Greg and Palmer, > -----Original Message----- > From: Greg KH <gregkh@linuxfoundation.org> > Sent: Wednesday, May 13, 2020 12:30 PM > To: Palmer Dabbelt <palmer@dabbelt.com> > Cc: Sagar Kadam <sagar.kadam@sifive.com>; linux-serial@vger.kernel.org; > linux-riscv@lists.infradead.org; linux-kernel@vger.kernel.org; Paul Walmsley > <paul.walmsley@sifive.com>; aou@eecs.berkeley.edu; Atish Patra > <Atish.Patra@wdc.com>; Anup Patel <Anup.Patel@wdc.com> > Subject: Re: [PATCH v1 1/1] tty: serial: add missing spin_lock_init for SiFive > serial console > > [External Email] Do not click links or attachments unless you recognize the > sender and know the content is safe > > On Tue, May 12, 2020 at 04:00:23PM -0700, Palmer Dabbelt wrote: > > On Sat, 09 May 2020 03:24:12 PDT (-0700), sagar.kadam@sifive.com wrote: > > > An uninitialised spin lock for sifive serial console raises a bad > > > magic spin_lock error as reported and discussed here [1]. > > > Initialising the spin lock resolves the issue. > > > > > > The fix is tested on HiFive Unleashed A00 board with Linux 5.7-rc4 > > > and OpenSBI v0.7 > > > > > > [1] > > > https://lore.kernel.org/linux-riscv/b9fe49483a903f404e7acc15a6efbef7 > > > 56db28ae.camel@wdc.com > > > > > > Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART") > > > Reported-by: Atish Patra <Atish.Patra@wdc.com> > > > Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com> > > > --- > > > drivers/tty/serial/sifive.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/tty/serial/sifive.c > > > b/drivers/tty/serial/sifive.c index 13eadcb..0b5110d 100644 > > > --- a/drivers/tty/serial/sifive.c > > > +++ b/drivers/tty/serial/sifive.c > > > @@ -883,6 +883,7 @@ console_initcall(sifive_console_init); > > > > > > static void __ssp_add_console_port(struct sifive_serial_port *ssp) > > > { > > > + spin_lock_init(&ssp->port.lock); > > > sifive_serial_console_ports[ssp->port.line] = ssp; } > > > > Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> > > Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> > > Thanks for the review. > > I'm assuming it's going in through Greg's tree. > > Sure, I'll be glad to take it. > Thanks for accepting it within your tree. BR, Sagar Kadam > greg k-h
diff --git a/drivers/tty/serial/sifive.c b/drivers/tty/serial/sifive.c index 13eadcb..0b5110d 100644 --- a/drivers/tty/serial/sifive.c +++ b/drivers/tty/serial/sifive.c @@ -883,6 +883,7 @@ console_initcall(sifive_console_init); static void __ssp_add_console_port(struct sifive_serial_port *ssp) { + spin_lock_init(&ssp->port.lock); sifive_serial_console_ports[ssp->port.line] = ssp; }
An uninitialised spin lock for sifive serial console raises a bad magic spin_lock error as reported and discussed here [1]. Initialising the spin lock resolves the issue. The fix is tested on HiFive Unleashed A00 board with Linux 5.7-rc4 and OpenSBI v0.7 [1] https://lore.kernel.org/linux-riscv/b9fe49483a903f404e7acc15a6efbef756db28ae.camel@wdc.com Fixes: 45c054d0815b ("tty: serial: add driver for the SiFive UART") Reported-by: Atish Patra <Atish.Patra@wdc.com> Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com> --- drivers/tty/serial/sifive.c | 1 + 1 file changed, 1 insertion(+)