Re: [PATCH] spi: Fix invalid sgs value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Biju,

On Mon, Mar 7, 2022 at 7:17 PM Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote:
> > Subject: Re: [PATCH] spi: Fix invalid sgs value
> > On Mon, Mar 7, 2022 at 7:01 PM Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
> > wrote:
> > > max_seg_size is unsigned int and it can have a value up to 2^32 (for
> > > eg:-RZ_DMAC driver sets dma_set_max_seg_size as U32_MAX) When this
> > > value is used in min_t() as an integer type, it becomes
> > > -1 and the value of sgs becomes 0.
> > >
> > > Fix this issue by replacing the 'int' data type with 'unsigned int'
> > > in min_t().
> > >
> > > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
> > > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> >
> > Thanks for your patch!
> >
> > > --- a/drivers/spi/spi.c
> > > +++ b/drivers/spi/spi.c
> > > @@ -1019,10 +1019,10 @@ int spi_map_buf(struct spi_controller *ctlr,
> > struct device *dev,
> > >         int i, ret;
> > >
> > >         if (vmalloced_buf || kmap_buf) {
> > > -               desc_len = min_t(int, max_seg_size, PAGE_SIZE);
> > > +               desc_len = min_t(unsigned int, max_seg_size,
> > > + PAGE_SIZE);
> > >                 sgs = DIV_ROUND_UP(len + offset_in_page(buf), desc_len);
> > >         } else if (virt_addr_valid(buf)) {
> > > -               desc_len = min_t(int, max_seg_size, ctlr->max_dma_len);
> > > +               desc_len = min_t(unsigned int, max_seg_size, (unsigned
> > > + int)ctlr->max_dma_len);
> >
> > The cast of the last parameter is not needed.
>
> OK. I thought since last param is size_t, casting is required.

That's exactly what min_t() does, but using an easier-to-grep-for
notation:
"min_t(type, a, b)" is equivalent to "min((type)a, (type)b)".

> OK will drop this.

Thanks!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux