Merge tag 'bug-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
Pull <linux/bug.h> cleanup from Paul Gortmaker:
"The changes shown here are to unify linux's BUG support under the one
<linux/bug.h> file. Due to historical reasons, we have some BUG code
in bug.h and some in kernel.h -- i.e. the support for BUILD_BUG in
linux/kernel.h predates the addition of linux/bug.h, but old code in
kernel.h wasn't moved to bug.h at that time. As a band-aid, kernel.h
was including <asm/bug.h> to pseudo link them.
This has caused confusion[1] and general yuck/WTF[2] reactions. Here
is an example that violates the principle of least surprise:
CC lib/string.o
lib/string.c: In function 'strlcat':
lib/string.c:225:2: error: implicit declaration of function 'BUILD_BUG_ON'
make[2]: *** [lib/string.o] Error 1
$
$ grep linux/bug.h lib/string.c
#include <linux/bug.h>
$
We've included <linux/bug.h> for the BUG infrastructure and yet we
still get a compile fail! [We've not kernel.h for BUILD_BUG_ON.] Ugh -
very confusing for someone who is new to kernel development.
With the above in mind, the goals of this changeset are:
1) find and fix any include/*.h files that were relying on the
implicit presence of BUG code.
2) find and fix any C files that were consuming kernel.h and hence
relying on implicitly getting some/all BUG code.
3) Move the BUG related code living in kernel.h to <linux/bug.h>
4) remove the asm/bug.h from kernel.h to finally break the chain.
During development, the order was more like 3-4, build-test, 1-2. But
to ensure that git history for bisect doesn't get needless build
failures introduced, the commits have been reorderd to fix the problem
areas in advance.
[1] https://lkml.org/lkml/2012/1/3/90
[2] https://lkml.org/lkml/2012/1/17/414"
Fix up conflicts (new radeon file, reiserfs header cleanups) as per Paul
and linux-next.
* tag 'bug-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
kernel.h: doesn't explicitly use bug.h, so don't include it.
bug: consolidate BUILD_BUG_ON with other bug code
BUG: headers with BUG/BUG_ON etc. need linux/bug.h
bug.h: add include of it to various implicit C users
lib: fix implicit users of kernel.h for TAINT_WARN
spinlock: macroize assert_spin_locked to avoid bug.h dependency
x86: relocate get/set debugreg fcns to include/asm/debugreg.
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/nl80211.h>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/rcupdate.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <linux/atomic.h> /* for struct atomic_t */
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/bug.h>
|
||||
|
||||
#include <net/checksum.h>
|
||||
#include <linux/netfilter.h> /* for union nf_inet_addr */
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#ifndef MAC80211_H
|
||||
#define MAC80211_H
|
||||
|
||||
#include <linux/bug.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/skbuff.h>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef __NET_GENERIC_H__
|
||||
#define __NET_GENERIC_H__
|
||||
|
||||
#include <linux/bug.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
/*
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define __NET_SCHED_RED_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bug.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <net/inet_ecn.h>
|
||||
#include <net/dsfield.h>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/tcp.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/cache.h>
|
||||
#include <linux/percpu.h>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#define _TIMEWAIT_SOCK_H
|
||||
|
||||
#include <linux/slab.h>
|
||||
#include <linux/bug.h>
|
||||
#include <net/sock.h>
|
||||
|
||||
struct timewait_sock_ops {
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#define _UDP_H
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/bug.h>
|
||||
#include <net/inet_sock.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/snmp.h>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/bug.h>
|
||||
|
||||
struct wpan_phy {
|
||||
struct mutex pib_lock;
|
||||
|
||||
Reference in New Issue
Block a user