On Sat, Nov 14 2020 at 11:22, Christoph Hellwig wrote: >> +#ifdef CONFIG_GENERIC_ENTRY >> +static inline void __set_task_syscall_work(struct thread_info *ti, int flag) >> +{ >> + set_bit(flag, (unsigned long *)&ti->syscall_work); >> +} >> +static inline int __test_task_syscall_work(struct thread_info *ti, int flag) >> +{ >> + return test_bit(flag, (unsigned long *)&ti->syscall_work); >> +} >> +static inline void __clear_task_syscall_work(struct thread_info *ti, int flag) >> +{ >> + return clear_bit(flag, (unsigned long *)&ti->syscall_work); > > The casts here look bogus. Making sure that &(unsigned long) results in a pointer to unsigned long is indeed silly. Thanks, tglx