On Tue, Aug 06, 2019 at 06:41:44PM +0200, Oliver Hartkopp wrote: > I compiled the code (the original version), but I do not get that "Should it > be static?" warning: > > user@box:~/net-next$ make C=1 > CALL scripts/checksyscalls.sh > CALL scripts/atomic/check-atomics.sh > DESCEND objtool > CHK include/generated/compile.h > CHECK net/can/af_can.c > ./include/linux/sched.h:609:43: error: bad integer constant expression > ./include/linux/sched.h:609:73: error: invalid named zero-width bitfield > `value' > ./include/linux/sched.h:610:43: error: bad integer constant expression > ./include/linux/sched.h:610:67: error: invalid named zero-width bitfield > `bucket_id' > CC [M] net/can/af_can.o The sched.h errors suppress Sparse warnings so it's broken/useless now. The code looks like this: include/linux/sched.h 613 struct uclamp_se { 614 unsigned int value : bits_per(SCHED_CAPACITY_SCALE); 615 unsigned int bucket_id : bits_per(UCLAMP_BUCKETS); 616 unsigned int active : 1; 617 unsigned int user_defined : 1; 618 }; bits_per() is zero and Sparse doesn't like zero sized bitfields. regards, dan carpenter