Message ID | 1457425749-24110-1-git-send-email-wagi@monom.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 8 Mar 2016, Daniel Wagner wrote: > From: Daniel Wagner <daniel.wagner@bmw-carit.de> > > With the introduction of the simple wait API we have two very > similar APIs in the kernel. For example wake_up() and swake_up() > is only one character away. Although the compiler will warn > happily the wrong usage it keeps on going an even links the kernel. > Thomas and Peter would rather like to see early missuses reported > as error early on. > > In a first attempt we tried to wrap all swait and wait calls > into a macro which has an compile time type assertion. The result > was pretty ugly and wasn't able to catch all wrong usages. > woken_wake_function(), autoremove_wake_function() and wake_bit_function() > are assigned as function pointers. Wrapping them with a macro around is > not possible. Prefixing them with '_' was also not a real option > because there some users in the kernel which do use them as well. > All in all this attempt looked to intrusive and too ugly. > > An alternative is to turn the pointer type check into an error which > catches wrong type uses. Obviously not only the swait/wait ones. That > isn't a bad thing either. > > Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de> > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> > Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: Thomas Gleixner <tglx@linutronix.de> -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Thomas Gleixner <tglx@linutronix.de> wrote: > On Tue, 8 Mar 2016, Daniel Wagner wrote: > > > From: Daniel Wagner <daniel.wagner@bmw-carit.de> > > > > With the introduction of the simple wait API we have two very > > similar APIs in the kernel. For example wake_up() and swake_up() > > is only one character away. Although the compiler will warn > > happily the wrong usage it keeps on going an even links the kernel. > > Thomas and Peter would rather like to see early missuses reported > > as error early on. > > > > In a first attempt we tried to wrap all swait and wait calls > > into a macro which has an compile time type assertion. The result > > was pretty ugly and wasn't able to catch all wrong usages. > > woken_wake_function(), autoremove_wake_function() and wake_bit_function() > > are assigned as function pointers. Wrapping them with a macro around is > > not possible. Prefixing them with '_' was also not a real option > > because there some users in the kernel which do use them as well. > > All in all this attempt looked to intrusive and too ugly. > > > > An alternative is to turn the pointer type check into an error which > > catches wrong type uses. Obviously not only the swait/wait ones. That > > isn't a bad thing either. > > > > Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de> > > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> > > Cc: Thomas Gleixner <tglx@linutronix.de> > > Acked-by: Thomas Gleixner <tglx@linutronix.de> Note that there will be a few build failures triggered by this, for example this fix from linux-next is needed: > commit db9b60400f9253c25ae639797df2d0ff7a35d9d8 > Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com> > Date: Tue Feb 2 11:35:55 2016 +0530 > > drm/gma500: remove helper function Other than that: Acked-by: Ingo Molnar <mingo@kernel.org> Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Dne 8.3.2016 v 10:19 Ingo Molnar napsal(a): > > * Thomas Gleixner <tglx@linutronix.de> wrote: > >> On Tue, 8 Mar 2016, Daniel Wagner wrote: >> >>> From: Daniel Wagner <daniel.wagner@bmw-carit.de> >>> >>> With the introduction of the simple wait API we have two very >>> similar APIs in the kernel. For example wake_up() and swake_up() >>> is only one character away. Although the compiler will warn >>> happily the wrong usage it keeps on going an even links the kernel. >>> Thomas and Peter would rather like to see early missuses reported >>> as error early on. >>> >>> In a first attempt we tried to wrap all swait and wait calls >>> into a macro which has an compile time type assertion. The result >>> was pretty ugly and wasn't able to catch all wrong usages. >>> woken_wake_function(), autoremove_wake_function() and wake_bit_function() >>> are assigned as function pointers. Wrapping them with a macro around is >>> not possible. Prefixing them with '_' was also not a real option >>> because there some users in the kernel which do use them as well. >>> All in all this attempt looked to intrusive and too ugly. >>> >>> An alternative is to turn the pointer type check into an error which >>> catches wrong type uses. Obviously not only the swait/wait ones. That >>> isn't a bad thing either. >>> >>> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de> >>> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> >>> Cc: Thomas Gleixner <tglx@linutronix.de> >> >> Acked-by: Thomas Gleixner <tglx@linutronix.de> Applied to kbuild.git#kbuild. > > Note that there will be a few build failures triggered by this, for example this > fix from linux-next is needed: > >> commit db9b60400f9253c25ae639797df2d0ff7a35d9d8 >> Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com> >> Date: Tue Feb 2 11:35:55 2016 +0530 >> >> drm/gma500: remove helper function OK. I will send a pull request to Linus only after at least x86_64/allyescofnig is fixed. Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Dne 15.3.2016 v 22:34 Michal Marek napsal(a): > Dne 8.3.2016 v 10:19 Ingo Molnar napsal(a): >> Note that there will be a few build failures triggered by this, for example this >> fix from linux-next is needed: >> >>> commit db9b60400f9253c25ae639797df2d0ff7a35d9d8 >>> Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com> >>> Date: Tue Feb 2 11:35:55 2016 +0530 >>> >>> drm/gma500: remove helper function > > OK. I will send a pull request to Linus only after at least > x86_64/allyescofnig is fixed. ... which, incidentally, the gma500 file is not part of :). Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Makefile b/Makefile index 2d519d2..a0ff507 100644 --- a/Makefile +++ b/Makefile @@ -773,6 +773,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=strict-prototypes) # Prohibit date/time macros, which would make the build non-deterministic KBUILD_CFLAGS += $(call cc-option,-Werror=date-time) +# enforce correct pointer usage +KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) + # use the deterministic mode of AR if available KBUILD_ARFLAGS := $(call ar-option,D)