Messages in this thread | | | From | Thierry Reding <> | Date | Mon, 8 May 2023 17:23:06 +0200 | Subject | Re: [PATCH] workqueue: fix enum type for gcc-13 |
| |
On Tue, Jan 17, 2023 at 6:00 PM Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > In gcc-13, the WORK_STRUCT_WQ_DATA_MASK constant is a signed 64-bit > type on 32-bit architectures because the enum definition has both > negative numbers and numbers above LONG_MAX in it: > > kernel/workqueue.c: In function 'get_work_pwq': > kernel/workqueue.c:709:24: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > 709 | return (void *)(data & WORK_STRUCT_WQ_DATA_MASK); > | ^ > kernel/workqueue.c: In function 'get_work_pool': > kernel/workqueue.c:737:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > 737 | return ((struct pool_workqueue *) > | ^ > kernel/workqueue.c: In function 'get_work_pool_id': > kernel/workqueue.c:759:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > 759 | return ((struct pool_workqueue *) > | ^ > > Change the enum definition to ensure all values can fit into > the range of 'unsigned long' on all architectures. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > include/linux/workqueue.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
Tested-by: Thierry Reding <treding@nvidia.com>
| |