Re: [PATCH 04/11] drm/r128: Fix undefined behavior due to shift overflowing the constant
On Thu, Jun 16, 2022 at 09:06:45AM -0700, Randy Dunlap wrote: > > > On 5/19/22 06:05, Daniel Vetter wrote: > > On Mon, Apr 25, 2022 at 11:46:53AM -0700, Randy Dunlap wrote: > >> > >> > >> On 4/5/22 08:15, Borislav Petkov wrote: > >>> From: Borislav Petkov > >>> > >>> Fix: > >>> > >>> drivers/gpu/drm/r128/r128_cce.c: In function ‘r128_do_init_cce’: > >>> drivers/gpu/drm/r128/r128_cce.c:417:2: error: case label does not > >>> reduce to an integer constant > >>> case R128_PM4_64BM_64VCBM_64INDBM: > >>> ^~~~ > >>> drivers/gpu/drm/r128/r128_cce.c:418:2: error: case label does not > >>> reduce to an integer constant > >>> case R128_PM4_64PIO_64VCPIO_64INDPIO: > >>> ^~~~ > >>> > >>> See https://lore.kernel.org/r/ykwq6%2btih8gqp...@zn.tnic for the gory > >>> details as to why it triggers with older gccs only. > >>> > >>> Signed-off-by: Borislav Petkov > >>> Cc: David Airlie > >>> Cc: Daniel Vetter > >>> Cc: Alex Deucher > >>> Cc: dri-devel@lists.freedesktop.org > >> > >> Reviewed-by: Randy Dunlap > > > > Pushed to drm-misc-next, thanks for patch&review. > > -Daniel > > > > Hi, > > Will this be merged to mainline any time soonish? It missed the merge window by a hair, so it's in linux-next and will get into the next one. -Daniel > > thanks. > > >> > >> Thanks. > >> > >>> --- > >>> drivers/gpu/drm/r128/r128_drv.h | 4 ++-- > >>> 1 file changed, 2 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/r128/r128_drv.h > >>> b/drivers/gpu/drm/r128/r128_drv.h > >>> index 2e1bc01aa5c9..970e192b0d51 100644 > >>> --- a/drivers/gpu/drm/r128/r128_drv.h > >>> +++ b/drivers/gpu/drm/r128/r128_drv.h > >>> @@ -300,8 +300,8 @@ extern long r128_compat_ioctl(struct file *filp, > >>> unsigned int cmd, > >>> #define R128_PM4_64PIO_128INDBM (5 << 28) > >>> #define R128_PM4_64BM_128INDBM (6 << 28) > >>> #define R128_PM4_64PIO_64VCBM_64INDBM(7 << 28) > >>> -#define R128_PM4_64BM_64VCBM_64INDBM (8 << 28) > >>> -#define R128_PM4_64PIO_64VCPIO_64INDPIO (15 << 28) > >>> +#define R128_PM4_64BM_64VCBM_64INDBM (8U << 28) > >>> +#define R128_PM4_64PIO_64VCPIO_64INDPIO (15U << 28) > >>> #define R128_PM4_BUFFER_CNTL_NOUPDATE(1 << 27) > >>> > >>> #define R128_PM4_BUFFER_WM_CNTL 0x0708 > >> > >> -- > >> ~Randy > > > > -- > ~Randy -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
Re: [PATCH 04/11] drm/r128: Fix undefined behavior due to shift overflowing the constant
On 5/19/22 06:05, Daniel Vetter wrote: > On Mon, Apr 25, 2022 at 11:46:53AM -0700, Randy Dunlap wrote: >> >> >> On 4/5/22 08:15, Borislav Petkov wrote: >>> From: Borislav Petkov >>> >>> Fix: >>> >>> drivers/gpu/drm/r128/r128_cce.c: In function ‘r128_do_init_cce’: >>> drivers/gpu/drm/r128/r128_cce.c:417:2: error: case label does not reduce >>> to an integer constant >>> case R128_PM4_64BM_64VCBM_64INDBM: >>> ^~~~ >>> drivers/gpu/drm/r128/r128_cce.c:418:2: error: case label does not reduce >>> to an integer constant >>> case R128_PM4_64PIO_64VCPIO_64INDPIO: >>> ^~~~ >>> >>> See https://lore.kernel.org/r/ykwq6%2btih8gqp...@zn.tnic for the gory >>> details as to why it triggers with older gccs only. >>> >>> Signed-off-by: Borislav Petkov >>> Cc: David Airlie >>> Cc: Daniel Vetter >>> Cc: Alex Deucher >>> Cc: dri-devel@lists.freedesktop.org >> >> Reviewed-by: Randy Dunlap > > Pushed to drm-misc-next, thanks for patch&review. > -Daniel > Hi, Will this be merged to mainline any time soonish? thanks. >> >> Thanks. >> >>> --- >>> drivers/gpu/drm/r128/r128_drv.h | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/r128/r128_drv.h >>> b/drivers/gpu/drm/r128/r128_drv.h >>> index 2e1bc01aa5c9..970e192b0d51 100644 >>> --- a/drivers/gpu/drm/r128/r128_drv.h >>> +++ b/drivers/gpu/drm/r128/r128_drv.h >>> @@ -300,8 +300,8 @@ extern long r128_compat_ioctl(struct file *filp, >>> unsigned int cmd, >>> # define R128_PM4_64PIO_128INDBM (5 << 28) >>> # define R128_PM4_64BM_128INDBM (6 << 28) >>> # define R128_PM4_64PIO_64VCBM_64INDBM(7 << 28) >>> -# define R128_PM4_64BM_64VCBM_64INDBM (8 << 28) >>> -# define R128_PM4_64PIO_64VCPIO_64INDPIO (15 << 28) >>> +# define R128_PM4_64BM_64VCBM_64INDBM (8U << 28) >>> +# define R128_PM4_64PIO_64VCPIO_64INDPIO (15U << 28) >>> # define R128_PM4_BUFFER_CNTL_NOUPDATE(1 << 27) >>> >>> #define R128_PM4_BUFFER_WM_CNTL0x0708 >> >> -- >> ~Randy > -- ~Randy
Re: [PATCH 04/11] drm/r128: Fix undefined behavior due to shift overflowing the constant
On Mon, Apr 25, 2022 at 11:46:53AM -0700, Randy Dunlap wrote: > > > On 4/5/22 08:15, Borislav Petkov wrote: > > From: Borislav Petkov > > > > Fix: > > > > drivers/gpu/drm/r128/r128_cce.c: In function ‘r128_do_init_cce’: > > drivers/gpu/drm/r128/r128_cce.c:417:2: error: case label does not reduce > > to an integer constant > > case R128_PM4_64BM_64VCBM_64INDBM: > > ^~~~ > > drivers/gpu/drm/r128/r128_cce.c:418:2: error: case label does not reduce > > to an integer constant > > case R128_PM4_64PIO_64VCPIO_64INDPIO: > > ^~~~ > > > > See https://lore.kernel.org/r/ykwq6%2btih8gqp...@zn.tnic for the gory > > details as to why it triggers with older gccs only. > > > > Signed-off-by: Borislav Petkov > > Cc: David Airlie > > Cc: Daniel Vetter > > Cc: Alex Deucher > > Cc: dri-devel@lists.freedesktop.org > > Reviewed-by: Randy Dunlap Pushed to drm-misc-next, thanks for patch&review. -Daniel > > Thanks. > > > --- > > drivers/gpu/drm/r128/r128_drv.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/r128/r128_drv.h > > b/drivers/gpu/drm/r128/r128_drv.h > > index 2e1bc01aa5c9..970e192b0d51 100644 > > --- a/drivers/gpu/drm/r128/r128_drv.h > > +++ b/drivers/gpu/drm/r128/r128_drv.h > > @@ -300,8 +300,8 @@ extern long r128_compat_ioctl(struct file *filp, > > unsigned int cmd, > > # define R128_PM4_64PIO_128INDBM (5 << 28) > > # define R128_PM4_64BM_128INDBM (6 << 28) > > # define R128_PM4_64PIO_64VCBM_64INDBM(7 << 28) > > -# define R128_PM4_64BM_64VCBM_64INDBM (8 << 28) > > -# define R128_PM4_64PIO_64VCPIO_64INDPIO (15 << 28) > > +# define R128_PM4_64BM_64VCBM_64INDBM (8U << 28) > > +# define R128_PM4_64PIO_64VCPIO_64INDPIO (15U << 28) > > # define R128_PM4_BUFFER_CNTL_NOUPDATE(1 << 27) > > > > #define R128_PM4_BUFFER_WM_CNTL0x0708 > > -- > ~Randy -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
Re: [PATCH 04/11] drm/r128: Fix undefined behavior due to shift overflowing the constant
On 4/5/22 08:15, Borislav Petkov wrote: > From: Borislav Petkov > > Fix: > > drivers/gpu/drm/r128/r128_cce.c: In function ‘r128_do_init_cce’: > drivers/gpu/drm/r128/r128_cce.c:417:2: error: case label does not reduce to > an integer constant > case R128_PM4_64BM_64VCBM_64INDBM: > ^~~~ > drivers/gpu/drm/r128/r128_cce.c:418:2: error: case label does not reduce to > an integer constant > case R128_PM4_64PIO_64VCPIO_64INDPIO: > ^~~~ > > See https://lore.kernel.org/r/ykwq6%2btih8gqp...@zn.tnic for the gory > details as to why it triggers with older gccs only. > > Signed-off-by: Borislav Petkov > Cc: David Airlie > Cc: Daniel Vetter > Cc: Alex Deucher > Cc: dri-devel@lists.freedesktop.org Reviewed-by: Randy Dunlap Thanks. > --- > drivers/gpu/drm/r128/r128_drv.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h > index 2e1bc01aa5c9..970e192b0d51 100644 > --- a/drivers/gpu/drm/r128/r128_drv.h > +++ b/drivers/gpu/drm/r128/r128_drv.h > @@ -300,8 +300,8 @@ extern long r128_compat_ioctl(struct file *filp, unsigned > int cmd, > #define R128_PM4_64PIO_128INDBM (5 << 28) > #define R128_PM4_64BM_128INDBM (6 << 28) > #define R128_PM4_64PIO_64VCBM_64INDBM(7 << 28) > -#define R128_PM4_64BM_64VCBM_64INDBM (8 << 28) > -#define R128_PM4_64PIO_64VCPIO_64INDPIO (15 << 28) > +#define R128_PM4_64BM_64VCBM_64INDBM (8U << 28) > +#define R128_PM4_64PIO_64VCPIO_64INDPIO (15U << 28) > #define R128_PM4_BUFFER_CNTL_NOUPDATE(1 << 27) > > #define R128_PM4_BUFFER_WM_CNTL 0x0708 -- ~Randy
[PATCH 04/11] drm/r128: Fix undefined behavior due to shift overflowing the constant
From: Borislav Petkov Fix: drivers/gpu/drm/r128/r128_cce.c: In function ‘r128_do_init_cce’: drivers/gpu/drm/r128/r128_cce.c:417:2: error: case label does not reduce to an integer constant case R128_PM4_64BM_64VCBM_64INDBM: ^~~~ drivers/gpu/drm/r128/r128_cce.c:418:2: error: case label does not reduce to an integer constant case R128_PM4_64PIO_64VCPIO_64INDPIO: ^~~~ See https://lore.kernel.org/r/ykwq6%2btih8gqp...@zn.tnic for the gory details as to why it triggers with older gccs only. Signed-off-by: Borislav Petkov Cc: David Airlie Cc: Daniel Vetter Cc: Alex Deucher Cc: dri-devel@lists.freedesktop.org --- drivers/gpu/drm/r128/r128_drv.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h index 2e1bc01aa5c9..970e192b0d51 100644 --- a/drivers/gpu/drm/r128/r128_drv.h +++ b/drivers/gpu/drm/r128/r128_drv.h @@ -300,8 +300,8 @@ extern long r128_compat_ioctl(struct file *filp, unsigned int cmd, # define R128_PM4_64PIO_128INDBM (5 << 28) # define R128_PM4_64BM_128INDBM (6 << 28) # define R128_PM4_64PIO_64VCBM_64INDBM(7 << 28) -# define R128_PM4_64BM_64VCBM_64INDBM (8 << 28) -# define R128_PM4_64PIO_64VCPIO_64INDPIO (15 << 28) +# define R128_PM4_64BM_64VCBM_64INDBM (8U << 28) +# define R128_PM4_64PIO_64VCPIO_64INDPIO (15U << 28) # define R128_PM4_BUFFER_CNTL_NOUPDATE(1 << 27) #define R128_PM4_BUFFER_WM_CNTL0x0708 -- 2.35.1