[PATCH 2/4] lib: utils/serial: Initialize platform_uart_data to zero

Anup Patel anup at brainfault.org
Sat Jul 30 03:20:09 PDT 2022


On Sat, Jul 30, 2022 at 10:55 AM Anup Patel <anup at brainfault.org> wrote:
>
> On Mon, Jul 18, 2022 at 10:50 PM Andrew Jones <ajones at ventanamicro.com> wrote:
> >
> > While it doesn't look like there are any current cases of using
> > uninitialized data, let's zero all the UART data members to be
> > safe. Zero may not actually be better than a random number in
> > some cases, so all structure members should still be validated
> > before use, but at least zero is usually easier to debug than
> > some random stack garbage...
> >
> > Signed-off-by: Andrew Jones <ajones at ventanamicro.com>
>
> Looks good to me.
>
> Reviewed-by: Anup Patel <anup at brainfault.org>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

>
> Regards,
> Anup
>
> > ---
> >  lib/utils/serial/fdt_serial_gaisler.c       | 2 +-
> >  lib/utils/serial/fdt_serial_shakti.c        | 2 +-
> >  lib/utils/serial/fdt_serial_sifive.c        | 2 +-
> >  lib/utils/serial/fdt_serial_uart8250.c      | 2 +-
> >  lib/utils/serial/fdt_serial_xlnx_uartlite.c | 2 +-
> >  platform/fpga/openpiton/platform.c          | 2 +-
> >  6 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/lib/utils/serial/fdt_serial_gaisler.c b/lib/utils/serial/fdt_serial_gaisler.c
> > index 9a9f9a8b7962..74988e34bcd8 100644
> > --- a/lib/utils/serial/fdt_serial_gaisler.c
> > +++ b/lib/utils/serial/fdt_serial_gaisler.c
> > @@ -15,7 +15,7 @@ static int serial_gaisler_init(void *fdt, int nodeoff,
> >                                const struct fdt_match *match)
> >  {
> >         int rc;
> > -       struct platform_uart_data uart;
> > +       struct platform_uart_data uart = { 0 };
> >
> >         rc = fdt_parse_gaisler_uart_node(fdt, nodeoff, &uart);
> >         if (rc)
> > diff --git a/lib/utils/serial/fdt_serial_shakti.c b/lib/utils/serial/fdt_serial_shakti.c
> > index 4f91419ef53c..0e056303dbb5 100644
> > --- a/lib/utils/serial/fdt_serial_shakti.c
> > +++ b/lib/utils/serial/fdt_serial_shakti.c
> > @@ -13,7 +13,7 @@ static int serial_shakti_init(void *fdt, int nodeoff,
> >                                 const struct fdt_match *match)
> >  {
> >         int rc;
> > -       struct platform_uart_data uart;
> > +       struct platform_uart_data uart = { 0 };
> >
> >         rc = fdt_parse_shakti_uart_node(fdt, nodeoff, &uart);
> >         if (rc)
> > diff --git a/lib/utils/serial/fdt_serial_sifive.c b/lib/utils/serial/fdt_serial_sifive.c
> > index f4c833c1573d..3ca10913eee3 100644
> > --- a/lib/utils/serial/fdt_serial_sifive.c
> > +++ b/lib/utils/serial/fdt_serial_sifive.c
> > @@ -15,7 +15,7 @@ static int serial_sifive_init(void *fdt, int nodeoff,
> >                                 const struct fdt_match *match)
> >  {
> >         int rc;
> > -       struct platform_uart_data uart;
> > +       struct platform_uart_data uart = { 0 };
> >
> >         rc = fdt_parse_sifive_uart_node(fdt, nodeoff, &uart);
> >         if (rc)
> > diff --git a/lib/utils/serial/fdt_serial_uart8250.c b/lib/utils/serial/fdt_serial_uart8250.c
> > index 544b7416de42..0b95f2d9e44e 100644
> > --- a/lib/utils/serial/fdt_serial_uart8250.c
> > +++ b/lib/utils/serial/fdt_serial_uart8250.c
> > @@ -15,7 +15,7 @@ static int serial_uart8250_init(void *fdt, int nodeoff,
> >                                 const struct fdt_match *match)
> >  {
> >         int rc;
> > -       struct platform_uart_data uart;
> > +       struct platform_uart_data uart = { 0 };
> >
> >         rc = fdt_parse_uart8250_node(fdt, nodeoff, &uart);
> >         if (rc)
> > diff --git a/lib/utils/serial/fdt_serial_xlnx_uartlite.c b/lib/utils/serial/fdt_serial_xlnx_uartlite.c
> > index 466e16e82d8c..9f04aea3673b 100644
> > --- a/lib/utils/serial/fdt_serial_xlnx_uartlite.c
> > +++ b/lib/utils/serial/fdt_serial_xlnx_uartlite.c
> > @@ -15,7 +15,7 @@ static int serial_xlnx_uartlite_init(void *fdt, int nodeoff,
> >                                 const struct fdt_match *match)
> >  {
> >         int rc;
> > -       struct platform_uart_data uart;
> > +       struct platform_uart_data uart = { 0 };
> >
> >         rc = fdt_parse_xlnx_uartlite_node(fdt, nodeoff, &uart);
> >         if (rc)
> > diff --git a/platform/fpga/openpiton/platform.c b/platform/fpga/openpiton/platform.c
> > index 7ca21236bfef..5ff7d200aba9 100644
> > --- a/platform/fpga/openpiton/platform.c
> > +++ b/platform/fpga/openpiton/platform.c
> > @@ -69,7 +69,7 @@ static struct aclint_mtimer_data mtimer = {
> >  static int openpiton_early_init(bool cold_boot)
> >  {
> >         void *fdt;
> > -       struct platform_uart_data uart_data;
> > +       struct platform_uart_data uart_data = { 0 };
> >         struct plic_data plic_data;
> >         unsigned long aclint_freq;
> >         uint64_t clint_addr;
> > --
> > 2.36.1
> >
> >
> > --
> > opensbi mailing list
> > opensbi at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/opensbi



More information about the opensbi mailing list