aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/acpi/acpi_bus.h22
-rw-r--r--include/asm-generic/gpio.h1
-rw-r--r--include/asm-generic/socket.h1
-rw-r--r--include/asm-generic/vmlinux.lds.h4
-rw-r--r--include/drm/drm_crtc.h14
-rw-r--r--include/drm/drm_crtc_helper.h4
-rw-r--r--include/drm/drm_fb_helper.h24
-rw-r--r--include/linux/agp_backend.h2
-rw-r--r--include/linux/amba/mmci.h18
-rw-r--r--include/linux/amba/pl022.h8
-rw-r--r--include/linux/backing-dev.h3
-rw-r--r--include/linux/backlight.h7
-rw-r--r--include/linux/blkdev.h48
-rw-r--r--include/linux/blktrace_api.h2
-rw-r--r--include/linux/brcmphy.h19
-rw-r--r--include/linux/can/core.h2
-rw-r--r--include/linux/can/dev.h20
-rw-r--r--include/linux/can/platform/ti_hecc.h40
-rw-r--r--include/linux/cgroup.h2
-rw-r--r--include/linux/dn.h9
-rw-r--r--include/linux/errqueue.h6
-rw-r--r--include/linux/ethtool.h38
-rw-r--r--include/linux/fb.h1
-rw-r--r--include/linux/fib_rules.h9
-rw-r--r--include/linux/filter.h10
-rw-r--r--include/linux/fs.h6
-rw-r--r--include/linux/gen_stats.h15
-rw-r--r--include/linux/genhd.h21
-rw-r--r--include/linux/hugetlb.h14
-rw-r--r--include/linux/if.h15
-rw-r--r--include/linux/if_addr.h9
-rw-r--r--include/linux/if_addrlabel.h6
-rw-r--r--include/linux/if_arcnet.h18
-rw-r--r--include/linux/if_arp.h3
-rw-r--r--include/linux/if_bonding.h3
-rw-r--r--include/linux/if_bridge.h9
-rw-r--r--include/linux/if_ec.h12
-rw-r--r--include/linux/if_fddi.h22
-rw-r--r--include/linux/if_hippi.h15
-rw-r--r--include/linux/if_link.h27
-rw-r--r--include/linux/if_packet.h27
-rw-r--r--include/linux/if_plip.h3
-rw-r--r--include/linux/if_pppol2tp.h3
-rw-r--r--include/linux/if_tunnel.h18
-rw-r--r--include/linux/if_vlan.h40
-rw-r--r--include/linux/igmp.h15
-rw-r--r--include/linux/in.h18
-rw-r--r--include/linux/in6.h9
-rw-r--r--include/linux/inetdevice.h9
-rw-r--r--include/linux/ip_vs.h3
-rw-r--r--include/linux/ipc.h2
-rw-r--r--include/linux/ipv6.h4
-rw-r--r--include/linux/jbd2.h27
-rw-r--r--include/linux/kref.h1
-rw-r--r--include/linux/mfd/wm831x/status.h34
-rw-r--r--include/linux/mm.h2
-rw-r--r--include/linux/mm_types.h2
-rw-r--r--include/linux/mroute.h31
-rw-r--r--include/linux/mroute6.h15
-rw-r--r--include/linux/neighbour.h18
-rw-r--r--include/linux/net.h7
-rw-r--r--include/linux/netdevice.h70
-rw-r--r--include/linux/netfilter.h6
-rw-r--r--include/linux/netfilter/nf_conntrack_common.h6
-rw-r--r--include/linux/netfilter/nf_conntrack_ftp.h3
-rw-r--r--include/linux/netfilter/nf_conntrack_sctp.h3
-rw-r--r--include/linux/netfilter/nf_conntrack_tcp.h3
-rw-r--r--include/linux/netfilter/nfnetlink.h6
-rw-r--r--include/linux/netfilter/nfnetlink_compat.h3
-rw-r--r--include/linux/netfilter/x_tables.h45
-rw-r--r--include/linux/netfilter/xt_connbytes.h3
-rw-r--r--include/linux/netfilter/xt_esp.h3
-rw-r--r--include/linux/netfilter/xt_multiport.h9
-rw-r--r--include/linux/netfilter/xt_policy.h18
-rw-r--r--include/linux/netfilter/xt_state.h3
-rw-r--r--include/linux/netfilter/xt_string.h3
-rw-r--r--include/linux/netfilter/xt_tcpudp.h6
-rw-r--r--include/linux/netfilter_arp/arp_tables.h21
-rw-r--r--include/linux/netfilter_bridge/ebt_802_3.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_among.h9
-rw-r--r--include/linux/netfilter_bridge/ebt_arpreply.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_ip.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_ip6.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_limit.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_log.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_mark_m.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_mark_t.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_nat.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_pkttype.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_redirect.h3
-rw-r--r--include/linux/netfilter_bridge/ebt_stp.h6
-rw-r--r--include/linux/netfilter_bridge/ebtables.h39
-rw-r--r--include/linux/netfilter_ipv4/ip_tables.h27
-rw-r--r--include/linux/netfilter_ipv4/ipt_SAME.h3
-rw-r--r--include/linux/netfilter_ipv4/ipt_ah.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6_tables.h27
-rw-r--r--include/linux/netfilter_ipv6/ip6t_ah.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6t_frag.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6t_ipv6header.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6t_mh.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6t_opts.h3
-rw-r--r--include/linux/netfilter_ipv6/ip6t_rt.h3
-rw-r--r--include/linux/netlink.h24
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/nl80211.h2
-rw-r--r--include/linux/notifier.h1
-rw-r--r--include/linux/perf_counter.h2
-rw-r--r--include/linux/perf_event.h2
-rw-r--r--include/linux/pkt_cls.h84
-rw-r--r--include/linux/pkt_sched.h111
-rw-r--r--include/linux/poll.h2
-rw-r--r--include/linux/ramfs.h2
-rw-r--r--include/linux/rds.h8
-rw-r--r--include/linux/res_counter.h6
-rw-r--r--include/linux/route.h3
-rw-r--r--include/linux/rtnetlink.h63
-rw-r--r--include/linux/serial_core.h3
-rw-r--r--include/linux/skbuff.h19
-rw-r--r--include/linux/smsc911x.h1
-rw-r--r--include/linux/socket.h13
-rw-r--r--include/linux/spi/lms283gf05.h28
-rw-r--r--include/linux/ssb/ssb.h20
-rw-r--r--include/linux/syscalls.h4
-rw-r--r--include/linux/tc_act/tc_defact.h6
-rw-r--r--include/linux/tc_act/tc_gact.h9
-rw-r--r--include/linux/tc_act/tc_ipt.h3
-rw-r--r--include/linux/tc_act/tc_mirred.h6
-rw-r--r--include/linux/tc_act/tc_nat.h6
-rw-r--r--include/linux/tc_act/tc_pedit.h9
-rw-r--r--include/linux/tc_act/tc_skbedit.h2
-rw-r--r--include/linux/tc_ematch/tc_em_cmp.h6
-rw-r--r--include/linux/tc_ematch/tc_em_meta.h15
-rw-r--r--include/linux/tc_ematch/tc_em_nbyte.h3
-rw-r--r--include/linux/tc_ematch/tc_em_text.h3
-rw-r--r--include/linux/tcp.h6
-rw-r--r--include/linux/tracepoint.h2
-rw-r--r--include/linux/tty_driver.h13
-rw-r--r--include/linux/udp.h6
-rw-r--r--include/linux/usb/usbnet.h1
-rw-r--r--include/linux/xfrm.h27
-rw-r--r--include/net/ah.h33
-rw-r--r--include/net/bluetooth/bluetooth.h2
-rw-r--r--include/net/cfg80211.h40
-rw-r--r--include/net/compat.h14
-rw-r--r--include/net/dn_dev.h12
-rw-r--r--include/net/dn_fib.h3
-rw-r--r--include/net/dn_nsp.h24
-rw-r--r--include/net/dst.h23
-rw-r--r--include/net/fib_rules.h9
-rw-r--r--include/net/gen_stats.h4
-rw-r--r--include/net/genetlink.h12
-rw-r--r--include/net/if_inet6.h24
-rw-r--r--include/net/inet6_hashtables.h4
-rw-r--r--include/net/inet_hashtables.h16
-rw-r--r--include/net/inet_sock.h36
-rw-r--r--include/net/inet_timewait_sock.h2
-rw-r--r--include/net/inetpeer.h3
-rw-r--r--include/net/ip.h27
-rw-r--r--include/net/ip6_fib.h15
-rw-r--r--include/net/ip6_route.h3
-rw-r--r--include/net/ip_fib.h25
-rw-r--r--include/net/ip_vs.h6
-rw-r--r--include/net/ipip.h25
-rw-r--r--include/net/ipv6.h12
-rw-r--r--include/net/iw_handler.h26
-rw-r--r--include/net/mac80211.h32
-rw-r--r--include/net/neighbour.h18
-rw-r--r--include/net/net_namespace.h6
-rw-r--r--include/net/netfilter/nf_conntrack_ecache.h3
-rw-r--r--include/net/netfilter/nf_conntrack_expect.h6
-rw-r--r--include/net/netfilter/nf_conntrack_extend.h6
-rw-r--r--include/net/netfilter/nf_conntrack_helper.h3
-rw-r--r--include/net/netfilter/nf_conntrack_l3proto.h3
-rw-r--r--include/net/netfilter/nf_conntrack_l4proto.h3
-rw-r--r--include/net/netfilter/nf_conntrack_tuple.h12
-rw-r--r--include/net/netfilter/nf_nat.h15
-rw-r--r--include/net/netfilter/nf_nat_protocol.h3
-rw-r--r--include/net/phonet/phonet.h1
-rw-r--r--include/net/phonet/pn_dev.h6
-rw-r--r--include/net/pkt_cls.h24
-rw-r--r--include/net/pkt_sched.h3
-rw-r--r--include/net/protocol.h7
-rw-r--r--include/net/red.h6
-rw-r--r--include/net/route.h12
-rw-r--r--include/net/rtnetlink.h3
-rw-r--r--include/net/sch_generic.h30
-rw-r--r--include/net/scm.h9
-rw-r--r--include/net/sctp/sctp.h3
-rw-r--r--include/net/sock.h32
-rw-r--r--include/net/tc_act/tc_skbedit.h2
-rw-r--r--include/net/tcp.h6
-rw-r--r--include/net/udp.h13
-rw-r--r--include/net/wext.h49
-rw-r--r--include/net/xfrm.h30
-rw-r--r--include/pcmcia/ss.h2
-rw-r--r--include/trace/events/block.h33
-rw-r--r--include/trace/events/ext4.h178
-rw-r--r--include/trace/events/jbd2.h78
-rw-r--r--include/trace/events/workqueue.h4
199 files changed, 1512 insertions, 1224 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 1cef1398e358..3cd9ccdcbd8f 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -70,7 +70,6 @@ enum acpi_bus_device_type {
70 ACPI_BUS_TYPE_POWER, 70 ACPI_BUS_TYPE_POWER,
71 ACPI_BUS_TYPE_PROCESSOR, 71 ACPI_BUS_TYPE_PROCESSOR,
72 ACPI_BUS_TYPE_THERMAL, 72 ACPI_BUS_TYPE_THERMAL,
73 ACPI_BUS_TYPE_SYSTEM,
74 ACPI_BUS_TYPE_POWER_BUTTON, 73 ACPI_BUS_TYPE_POWER_BUTTON,
75 ACPI_BUS_TYPE_SLEEP_BUTTON, 74 ACPI_BUS_TYPE_SLEEP_BUTTON,
76 ACPI_BUS_DEVICE_TYPE_COUNT 75 ACPI_BUS_DEVICE_TYPE_COUNT
@@ -142,10 +141,7 @@ struct acpi_device_status {
142 141
143struct acpi_device_flags { 142struct acpi_device_flags {
144 u32 dynamic_status:1; 143 u32 dynamic_status:1;
145 u32 hardware_id:1;
146 u32 compatible_ids:1;
147 u32 bus_address:1; 144 u32 bus_address:1;
148 u32 unique_id:1;
149 u32 removable:1; 145 u32 removable:1;
150 u32 ejectable:1; 146 u32 ejectable:1;
151 u32 lockable:1; 147 u32 lockable:1;
@@ -154,7 +150,7 @@ struct acpi_device_flags {
154 u32 performance_manageable:1; 150 u32 performance_manageable:1;
155 u32 wake_capable:1; /* Wakeup(_PRW) supported? */ 151 u32 wake_capable:1; /* Wakeup(_PRW) supported? */
156 u32 force_power_state:1; 152 u32 force_power_state:1;
157 u32 reserved:19; 153 u32 reserved:22;
158}; 154};
159 155
160/* File System */ 156/* File System */
@@ -172,20 +168,23 @@ typedef unsigned long acpi_bus_address;
172typedef char acpi_device_name[40]; 168typedef char acpi_device_name[40];
173typedef char acpi_device_class[20]; 169typedef char acpi_device_class[20];
174 170
171struct acpi_hardware_id {
172 struct list_head list;
173 char *id;
174};
175
175struct acpi_device_pnp { 176struct acpi_device_pnp {
176 acpi_bus_id bus_id; /* Object name */ 177 acpi_bus_id bus_id; /* Object name */
177 acpi_bus_address bus_address; /* _ADR */ 178 acpi_bus_address bus_address; /* _ADR */
178 char *hardware_id; /* _HID */
179 struct acpica_device_id_list *cid_list; /* _CIDs */
180 char *unique_id; /* _UID */ 179 char *unique_id; /* _UID */
180 struct list_head ids; /* _HID and _CIDs */
181 acpi_device_name device_name; /* Driver-determined */ 181 acpi_device_name device_name; /* Driver-determined */
182 acpi_device_class device_class; /* " */ 182 acpi_device_class device_class; /* " */
183}; 183};
184 184
185#define acpi_device_bid(d) ((d)->pnp.bus_id) 185#define acpi_device_bid(d) ((d)->pnp.bus_id)
186#define acpi_device_adr(d) ((d)->pnp.bus_address) 186#define acpi_device_adr(d) ((d)->pnp.bus_address)
187#define acpi_device_hid(d) ((d)->pnp.hardware_id) 187char *acpi_device_hid(struct acpi_device *device);
188#define acpi_device_uid(d) ((d)->pnp.unique_id)
189#define acpi_device_name(d) ((d)->pnp.device_name) 188#define acpi_device_name(d) ((d)->pnp.device_name)
190#define acpi_device_class(d) ((d)->pnp.device_class) 189#define acpi_device_class(d) ((d)->pnp.device_class)
191 190
@@ -262,7 +261,8 @@ struct acpi_device_wakeup {
262/* Device */ 261/* Device */
263 262
264struct acpi_device { 263struct acpi_device {
265 acpi_handle handle; 264 int device_type;
265 acpi_handle handle; /* no handle for fixed hardware */
266 struct acpi_device *parent; 266 struct acpi_device *parent;
267 struct list_head children; 267 struct list_head children;
268 struct list_head node; 268 struct list_head node;
@@ -322,6 +322,8 @@ extern void unregister_acpi_bus_notifier(struct notifier_block *nb);
322 322
323int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); 323int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device);
324void acpi_bus_data_handler(acpi_handle handle, void *context); 324void acpi_bus_data_handler(acpi_handle handle, void *context);
325acpi_status acpi_bus_get_status_handle(acpi_handle handle,
326 unsigned long long *sta);
325int acpi_bus_get_status(struct acpi_device *device); 327int acpi_bus_get_status(struct acpi_device *device);
326int acpi_bus_get_power(acpi_handle handle, int *state); 328int acpi_bus_get_power(acpi_handle handle, int *state);
327int acpi_bus_set_power(acpi_handle handle, int state); 329int acpi_bus_set_power(acpi_handle handle, int state);
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index 9cca3785cab8..66d6106a2067 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -1,6 +1,7 @@
1#ifndef _ASM_GENERIC_GPIO_H 1#ifndef _ASM_GENERIC_GPIO_H
2#define _ASM_GENERIC_GPIO_H 2#define _ASM_GENERIC_GPIO_H
3 3
4#include <linux/kernel.h>
4#include <linux/types.h> 5#include <linux/types.h>
5#include <linux/errno.h> 6#include <linux/errno.h>
6 7
diff --git a/include/asm-generic/socket.h b/include/asm-generic/socket.h
index 538991cef6f0..9a6115e7cf63 100644
--- a/include/asm-generic/socket.h
+++ b/include/asm-generic/socket.h
@@ -63,4 +63,5 @@
63#define SO_PROTOCOL 38 63#define SO_PROTOCOL 38
64#define SO_DOMAIN 39 64#define SO_DOMAIN 39
65 65
66#define SO_RXQ_OVFL 40
66#endif /* __ASM_GENERIC_SOCKET_H */ 67#endif /* __ASM_GENERIC_SOCKET_H */
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 29ca8f53ffbe..b6e818f4b247 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -721,12 +721,12 @@
721 . = ALIGN(PAGE_SIZE); \ 721 . = ALIGN(PAGE_SIZE); \
722 .data : AT(ADDR(.data) - LOAD_OFFSET) { \ 722 .data : AT(ADDR(.data) - LOAD_OFFSET) { \
723 INIT_TASK_DATA(inittask) \ 723 INIT_TASK_DATA(inittask) \
724 NOSAVE_DATA \
725 PAGE_ALIGNED_DATA(pagealigned) \
724 CACHELINE_ALIGNED_DATA(cacheline) \ 726 CACHELINE_ALIGNED_DATA(cacheline) \
725 READ_MOSTLY_DATA(cacheline) \ 727 READ_MOSTLY_DATA(cacheline) \
726 DATA_DATA \ 728 DATA_DATA \
727 CONSTRUCTORS \ 729 CONSTRUCTORS \
728 NOSAVE_DATA \
729 PAGE_ALIGNED_DATA(pagealigned) \
730 } 730 }
731 731
732#define INIT_TEXT_SECTION(inittext_align) \ 732#define INIT_TEXT_SECTION(inittext_align) \
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index ae1e9e166959..b69347b8904f 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -387,6 +387,7 @@ struct drm_crtc {
387 * @get_modes: get mode list for this connector 387 * @get_modes: get mode list for this connector
388 * @set_property: property for this connector may need update 388 * @set_property: property for this connector may need update
389 * @destroy: make object go away 389 * @destroy: make object go away
390 * @force: notify the driver the connector is forced on
390 * 391 *
391 * Each CRTC may have one or more connectors attached to it. The functions 392 * Each CRTC may have one or more connectors attached to it. The functions
392 * below allow the core DRM code to control connectors, enumerate available modes, 393 * below allow the core DRM code to control connectors, enumerate available modes,
@@ -401,6 +402,7 @@ struct drm_connector_funcs {
401 int (*set_property)(struct drm_connector *connector, struct drm_property *property, 402 int (*set_property)(struct drm_connector *connector, struct drm_property *property,
402 uint64_t val); 403 uint64_t val);
403 void (*destroy)(struct drm_connector *connector); 404 void (*destroy)(struct drm_connector *connector);
405 void (*force)(struct drm_connector *connector);
404}; 406};
405 407
406struct drm_encoder_funcs { 408struct drm_encoder_funcs {
@@ -429,6 +431,13 @@ struct drm_encoder {
429 void *helper_private; 431 void *helper_private;
430}; 432};
431 433
434enum drm_connector_force {
435 DRM_FORCE_UNSPECIFIED,
436 DRM_FORCE_OFF,
437 DRM_FORCE_ON, /* force on analog part normally */
438 DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */
439};
440
432/** 441/**
433 * drm_connector - central DRM connector control structure 442 * drm_connector - central DRM connector control structure
434 * @crtc: CRTC this connector is currently connected to, NULL if none 443 * @crtc: CRTC this connector is currently connected to, NULL if none
@@ -478,9 +487,12 @@ struct drm_connector {
478 487
479 void *helper_private; 488 void *helper_private;
480 489
490 /* forced on connector */
491 enum drm_connector_force force;
481 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; 492 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
482 uint32_t force_encoder_id; 493 uint32_t force_encoder_id;
483 struct drm_encoder *encoder; /* currently active encoder */ 494 struct drm_encoder *encoder; /* currently active encoder */
495 void *fb_helper_private;
484}; 496};
485 497
486/** 498/**
@@ -746,7 +758,7 @@ extern int drm_mode_gamma_set_ioctl(struct drm_device *dev,
746extern bool drm_detect_hdmi_monitor(struct edid *edid); 758extern bool drm_detect_hdmi_monitor(struct edid *edid);
747extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, 759extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev,
748 int hdisplay, int vdisplay, int vrefresh, 760 int hdisplay, int vdisplay, int vrefresh,
749 bool reduced, bool interlaced); 761 bool reduced, bool interlaced, bool margins);
750extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev, 762extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev,
751 int hdisplay, int vdisplay, int vrefresh, 763 int hdisplay, int vdisplay, int vrefresh,
752 bool interlaced, int margins); 764 bool interlaced, int margins);
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
index 4c8dacaf4f58..ef47dfd8e5e9 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
@@ -39,6 +39,7 @@
39 39
40#include <linux/fb.h> 40#include <linux/fb.h>
41 41
42#include "drm_fb_helper.h"
42struct drm_crtc_helper_funcs { 43struct drm_crtc_helper_funcs {
43 /* 44 /*
44 * Control power levels on the CRTC. If the mode passed in is 45 * Control power levels on the CRTC. If the mode passed in is
@@ -119,10 +120,11 @@ static inline void drm_encoder_helper_add(struct drm_encoder *encoder,
119 encoder->helper_private = (void *)funcs; 120 encoder->helper_private = (void *)funcs;
120} 121}
121 122
122static inline void drm_connector_helper_add(struct drm_connector *connector, 123static inline int drm_connector_helper_add(struct drm_connector *connector,
123 const struct drm_connector_helper_funcs *funcs) 124 const struct drm_connector_helper_funcs *funcs)
124{ 125{
125 connector->helper_private = (void *)funcs; 126 connector->helper_private = (void *)funcs;
127 return drm_fb_helper_add_connector(connector);
126} 128}
127 129
128extern int drm_helper_resume_force_mode(struct drm_device *dev); 130extern int drm_helper_resume_force_mode(struct drm_device *dev);
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 88fffbdfa26f..4aa5740ce59f 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -35,11 +35,30 @@ struct drm_fb_helper_crtc {
35 struct drm_mode_set mode_set; 35 struct drm_mode_set mode_set;
36}; 36};
37 37
38
38struct drm_fb_helper_funcs { 39struct drm_fb_helper_funcs {
39 void (*gamma_set)(struct drm_crtc *crtc, u16 red, u16 green, 40 void (*gamma_set)(struct drm_crtc *crtc, u16 red, u16 green,
40 u16 blue, int regno); 41 u16 blue, int regno);
41}; 42};
42 43
44/* mode specified on the command line */
45struct drm_fb_helper_cmdline_mode {
46 bool specified;
47 bool refresh_specified;
48 bool bpp_specified;
49 int xres, yres;
50 int bpp;
51 int refresh;
52 bool rb;
53 bool interlace;
54 bool cvt;
55 bool margins;
56};
57
58struct drm_fb_helper_connector {
59 struct drm_fb_helper_cmdline_mode cmdline_mode;
60};
61
43struct drm_fb_helper { 62struct drm_fb_helper {
44 struct drm_framebuffer *fb; 63 struct drm_framebuffer *fb;
45 struct drm_device *dev; 64 struct drm_device *dev;
@@ -57,6 +76,8 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev,
57 uint32_t fb_height, 76 uint32_t fb_height,
58 uint32_t surface_width, 77 uint32_t surface_width,
59 uint32_t surface_height, 78 uint32_t surface_height,
79 uint32_t surface_depth,
80 uint32_t surface_bpp,
60 struct drm_framebuffer **fb_ptr)); 81 struct drm_framebuffer **fb_ptr));
61int drm_fb_helper_init_crtc_count(struct drm_fb_helper *helper, int crtc_count, 82int drm_fb_helper_init_crtc_count(struct drm_fb_helper *helper, int crtc_count,
62 int max_conn); 83 int max_conn);
@@ -79,4 +100,7 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_framebuffer *fb,
79 uint32_t fb_width, uint32_t fb_height); 100 uint32_t fb_width, uint32_t fb_height);
80void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch); 101void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch);
81 102
103int drm_fb_helper_add_connector(struct drm_connector *connector);
104int drm_fb_helper_parse_command_line(struct drm_device *dev);
105
82#endif 106#endif
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h
index 880130f7311f..9101ed64f803 100644
--- a/include/linux/agp_backend.h
+++ b/include/linux/agp_backend.h
@@ -53,7 +53,7 @@ struct agp_kern_info {
53 int current_memory; 53 int current_memory;
54 bool cant_use_aperture; 54 bool cant_use_aperture;
55 unsigned long page_mask; 55 unsigned long page_mask;
56 struct vm_operations_struct *vm_ops; 56 const struct vm_operations_struct *vm_ops;
57}; 57};
58 58
59/* 59/*
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h
new file mode 100644
index 000000000000..6b4241748dda
--- /dev/null
+++ b/include/linux/amba/mmci.h
@@ -0,0 +1,18 @@
1/*
2 * include/linux/amba/mmci.h
3 */
4#ifndef AMBA_MMCI_H
5#define AMBA_MMCI_H
6
7#include <linux/mmc/host.h>
8
9struct mmci_platform_data {
10 unsigned int ocr_mask; /* available voltages */
11 u32 (*translate_vdd)(struct device *, unsigned int);
12 unsigned int (*status)(struct device *);
13 int gpio_wp;
14 int gpio_cd;
15 unsigned long capabilities;
16};
17
18#endif
diff --git a/include/linux/amba/pl022.h b/include/linux/amba/pl022.h
index dcad0ffd1755..e4836c6b3dd7 100644
--- a/include/linux/amba/pl022.h
+++ b/include/linux/amba/pl022.h
@@ -136,12 +136,12 @@ enum ssp_tx_level_trig {
136 136
137/** 137/**
138 * enum SPI Clock Phase - clock phase (Motorola SPI interface only) 138 * enum SPI Clock Phase - clock phase (Motorola SPI interface only)
139 * @SSP_CLK_RISING_EDGE: Receive data on rising edge 139 * @SSP_CLK_FIRST_EDGE: Receive data on first edge transition (actual direction depends on polarity)
140 * @SSP_CLK_FALLING_EDGE: Receive data on falling edge 140 * @SSP_CLK_SECOND_EDGE: Receive data on second edge transition (actual direction depends on polarity)
141 */ 141 */
142enum ssp_spi_clk_phase { 142enum ssp_spi_clk_phase {
143 SSP_CLK_RISING_EDGE, 143 SSP_CLK_FIRST_EDGE,
144 SSP_CLK_FALLING_EDGE 144 SSP_CLK_SECOND_EDGE
145}; 145};
146 146
147/** 147/**
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index 0ee33c2e6129..b449e738533a 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -101,7 +101,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,
101 const char *fmt, ...); 101 const char *fmt, ...);
102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); 102int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
103void bdi_unregister(struct backing_dev_info *bdi); 103void bdi_unregister(struct backing_dev_info *bdi);
104void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); 104void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb,
105 long nr_pages);
105int bdi_writeback_task(struct bdi_writeback *wb); 106int bdi_writeback_task(struct bdi_writeback *wb);
106int bdi_has_dirty_io(struct backing_dev_info *bdi); 107int bdi_has_dirty_io(struct backing_dev_info *bdi);
107 108
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 79ca2da81c87..0f5f57858a23 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -27,6 +27,11 @@
27 * Any other use of the locks below is probably wrong. 27 * Any other use of the locks below is probably wrong.
28 */ 28 */
29 29
30enum backlight_update_reason {
31 BACKLIGHT_UPDATE_HOTKEY,
32 BACKLIGHT_UPDATE_SYSFS,
33};
34
30struct backlight_device; 35struct backlight_device;
31struct fb_info; 36struct fb_info;
32 37
@@ -100,6 +105,8 @@ static inline void backlight_update_status(struct backlight_device *bd)
100extern struct backlight_device *backlight_device_register(const char *name, 105extern struct backlight_device *backlight_device_register(const char *name,
101 struct device *dev, void *devdata, struct backlight_ops *ops); 106 struct device *dev, void *devdata, struct backlight_ops *ops);
102extern void backlight_device_unregister(struct backlight_device *bd); 107extern void backlight_device_unregister(struct backlight_device *bd);
108extern void backlight_force_update(struct backlight_device *bd,
109 enum backlight_update_reason reason);
103 110
104#define to_backlight_device(obj) container_of(obj, struct backlight_device, dev) 111#define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
105 112
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index e23a86cae5ac..25119041e034 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -82,7 +82,6 @@ enum rq_cmd_type_bits {
82enum { 82enum {
83 REQ_LB_OP_EJECT = 0x40, /* eject request */ 83 REQ_LB_OP_EJECT = 0x40, /* eject request */
84 REQ_LB_OP_FLUSH = 0x41, /* flush request */ 84 REQ_LB_OP_FLUSH = 0x41, /* flush request */
85 REQ_LB_OP_DISCARD = 0x42, /* discard sectors */
86}; 85};
87 86
88/* 87/*
@@ -261,7 +260,6 @@ typedef void (request_fn_proc) (struct request_queue *q);
261typedef int (make_request_fn) (struct request_queue *q, struct bio *bio); 260typedef int (make_request_fn) (struct request_queue *q, struct bio *bio);
262typedef int (prep_rq_fn) (struct request_queue *, struct request *); 261typedef int (prep_rq_fn) (struct request_queue *, struct request *);
263typedef void (unplug_fn) (struct request_queue *); 262typedef void (unplug_fn) (struct request_queue *);
264typedef int (prepare_discard_fn) (struct request_queue *, struct request *);
265 263
266struct bio_vec; 264struct bio_vec;
267struct bvec_merge_data { 265struct bvec_merge_data {
@@ -313,6 +311,7 @@ struct queue_limits {
313 unsigned int alignment_offset; 311 unsigned int alignment_offset;
314 unsigned int io_min; 312 unsigned int io_min;
315 unsigned int io_opt; 313 unsigned int io_opt;
314 unsigned int max_discard_sectors;
316 315
317 unsigned short logical_block_size; 316 unsigned short logical_block_size;
318 unsigned short max_hw_segments; 317 unsigned short max_hw_segments;
@@ -340,7 +339,6 @@ struct request_queue
340 make_request_fn *make_request_fn; 339 make_request_fn *make_request_fn;
341 prep_rq_fn *prep_rq_fn; 340 prep_rq_fn *prep_rq_fn;
342 unplug_fn *unplug_fn; 341 unplug_fn *unplug_fn;
343 prepare_discard_fn *prepare_discard_fn;
344 merge_bvec_fn *merge_bvec_fn; 342 merge_bvec_fn *merge_bvec_fn;
345 prepare_flush_fn *prepare_flush_fn; 343 prepare_flush_fn *prepare_flush_fn;
346 softirq_done_fn *softirq_done_fn; 344 softirq_done_fn *softirq_done_fn;
@@ -460,6 +458,7 @@ struct request_queue
460#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ 458#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */
461#define QUEUE_FLAG_IO_STAT 15 /* do IO stats */ 459#define QUEUE_FLAG_IO_STAT 15 /* do IO stats */
462#define QUEUE_FLAG_CQ 16 /* hardware does queuing */ 460#define QUEUE_FLAG_CQ 16 /* hardware does queuing */
461#define QUEUE_FLAG_DISCARD 17 /* supports DISCARD */
463 462
464#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \ 463#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
465 (1 << QUEUE_FLAG_CLUSTER) | \ 464 (1 << QUEUE_FLAG_CLUSTER) | \
@@ -591,6 +590,7 @@ enum {
591#define blk_queue_flushing(q) ((q)->ordseq) 590#define blk_queue_flushing(q) ((q)->ordseq)
592#define blk_queue_stackable(q) \ 591#define blk_queue_stackable(q) \
593 test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags) 592 test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags)
593#define blk_queue_discard(q) test_bit(QUEUE_FLAG_DISCARD, &(q)->queue_flags)
594 594
595#define blk_fs_request(rq) ((rq)->cmd_type == REQ_TYPE_FS) 595#define blk_fs_request(rq) ((rq)->cmd_type == REQ_TYPE_FS)
596#define blk_pc_request(rq) ((rq)->cmd_type == REQ_TYPE_BLOCK_PC) 596#define blk_pc_request(rq) ((rq)->cmd_type == REQ_TYPE_BLOCK_PC)
@@ -929,6 +929,8 @@ extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int);
929extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short); 929extern void blk_queue_max_phys_segments(struct request_queue *, unsigned short);
930extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short); 930extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short);
931extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); 931extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
932extern void blk_queue_max_discard_sectors(struct request_queue *q,
933 unsigned int max_discard_sectors);
932extern void blk_queue_logical_block_size(struct request_queue *, unsigned short); 934extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);
933extern void blk_queue_physical_block_size(struct request_queue *, unsigned short); 935extern void blk_queue_physical_block_size(struct request_queue *, unsigned short);
934extern void blk_queue_alignment_offset(struct request_queue *q, 936extern void blk_queue_alignment_offset(struct request_queue *q,
@@ -955,7 +957,6 @@ extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
955extern void blk_queue_dma_alignment(struct request_queue *, int); 957extern void blk_queue_dma_alignment(struct request_queue *, int);
956extern void blk_queue_update_dma_alignment(struct request_queue *, int); 958extern void blk_queue_update_dma_alignment(struct request_queue *, int);
957extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *); 959extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *);
958extern void blk_queue_set_discard(struct request_queue *, prepare_discard_fn *);
959extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *); 960extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *);
960extern void blk_queue_rq_timeout(struct request_queue *, unsigned int); 961extern void blk_queue_rq_timeout(struct request_queue *, unsigned int);
961extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); 962extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev);
@@ -1080,25 +1081,37 @@ static inline unsigned int queue_physical_block_size(struct request_queue *q)
1080 return q->limits.physical_block_size; 1081 return q->limits.physical_block_size;
1081} 1082}
1082 1083
1084static inline int bdev_physical_block_size(struct block_device *bdev)
1085{
1086 return queue_physical_block_size(bdev_get_queue(bdev));
1087}
1088
1083static inline unsigned int queue_io_min(struct request_queue *q) 1089static inline unsigned int queue_io_min(struct request_queue *q)
1084{ 1090{
1085 return q->limits.io_min; 1091 return q->limits.io_min;
1086} 1092}
1087 1093
1094static inline int bdev_io_min(struct block_device *bdev)
1095{
1096 return queue_io_min(bdev_get_queue(bdev));
1097}
1098
1088static inline unsigned int queue_io_opt(struct request_queue *q) 1099static inline unsigned int queue_io_opt(struct request_queue *q)
1089{ 1100{
1090 return q->limits.io_opt; 1101 return q->limits.io_opt;
1091} 1102}
1092 1103
1104static inline int bdev_io_opt(struct block_device *bdev)
1105{
1106 return queue_io_opt(bdev_get_queue(bdev));
1107}
1108
1093static inline int queue_alignment_offset(struct request_queue *q) 1109static inline int queue_alignment_offset(struct request_queue *q)
1094{ 1110{
1095 if (q && q->limits.misaligned) 1111 if (q->limits.misaligned)
1096 return -1; 1112 return -1;
1097 1113
1098 if (q && q->limits.alignment_offset) 1114 return q->limits.alignment_offset;
1099 return q->limits.alignment_offset;
1100
1101 return 0;
1102} 1115}
1103 1116
1104static inline int queue_sector_alignment_offset(struct request_queue *q, 1117static inline int queue_sector_alignment_offset(struct request_queue *q,
@@ -1108,6 +1121,19 @@ static inline int queue_sector_alignment_offset(struct request_queue *q,
1108 & (q->limits.io_min - 1); 1121 & (q->limits.io_min - 1);
1109} 1122}
1110 1123
1124static inline int bdev_alignment_offset(struct block_device *bdev)
1125{
1126 struct request_queue *q = bdev_get_queue(bdev);
1127
1128 if (q->limits.misaligned)
1129 return -1;
1130
1131 if (bdev != bdev->bd_contains)
1132 return bdev->bd_part->alignment_offset;
1133
1134 return q->limits.alignment_offset;
1135}
1136
1111static inline int queue_dma_alignment(struct request_queue *q) 1137static inline int queue_dma_alignment(struct request_queue *q)
1112{ 1138{
1113 return q ? q->dma_alignment : 511; 1139 return q ? q->dma_alignment : 511;
@@ -1146,7 +1172,11 @@ static inline void put_dev_sector(Sector p)
1146} 1172}
1147 1173
1148struct work_struct; 1174struct work_struct;
1175struct delayed_work;
1149int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); 1176int kblockd_schedule_work(struct request_queue *q, struct work_struct *work);
1177int kblockd_schedule_delayed_work(struct request_queue *q,
1178 struct delayed_work *work,
1179 unsigned long delay);
1150 1180
1151#define MODULE_ALIAS_BLOCKDEV(major,minor) \ 1181#define MODULE_ALIAS_BLOCKDEV(major,minor) \
1152 MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor)) 1182 MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
index 7e4350ece0f8..3b73b9992b26 100644
--- a/include/linux/blktrace_api.h
+++ b/include/linux/blktrace_api.h
@@ -198,6 +198,7 @@ extern int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
198 char __user *arg); 198 char __user *arg);
199extern int blk_trace_startstop(struct request_queue *q, int start); 199extern int blk_trace_startstop(struct request_queue *q, int start);
200extern int blk_trace_remove(struct request_queue *q); 200extern int blk_trace_remove(struct request_queue *q);
201extern void blk_trace_remove_sysfs(struct device *dev);
201extern int blk_trace_init_sysfs(struct device *dev); 202extern int blk_trace_init_sysfs(struct device *dev);
202 203
203extern struct attribute_group blk_trace_attr_group; 204extern struct attribute_group blk_trace_attr_group;
@@ -211,6 +212,7 @@ extern struct attribute_group blk_trace_attr_group;
211# define blk_trace_startstop(q, start) (-ENOTTY) 212# define blk_trace_startstop(q, start) (-ENOTTY)
212# define blk_trace_remove(q) (-ENOTTY) 213# define blk_trace_remove(q) (-ENOTTY)
213# define blk_add_trace_msg(q, fmt, ...) do { } while (0) 214# define blk_add_trace_msg(q, fmt, ...) do { } while (0)
215# define blk_trace_remove_sysfs(dev) do { } while (0)
214static inline int blk_trace_init_sysfs(struct device *dev) 216static inline int blk_trace_init_sysfs(struct device *dev)
215{ 217{
216 return 0; 218 return 0;
diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h
index 9b64b6d67873..2b31b91f5871 100644
--- a/include/linux/brcmphy.h
+++ b/include/linux/brcmphy.h
@@ -1,6 +1,13 @@
1#define PHY_BRCM_WIRESPEED_ENABLE 0x00000001 1#define PHY_BCM_FLAGS_MODE_COPPER 0x00000001
2#define PHY_BRCM_AUTO_PWRDWN_ENABLE 0x00000002 2#define PHY_BCM_FLAGS_MODE_1000BX 0x00000002
3#define PHY_BRCM_APD_CLK125_ENABLE 0x00000004 3#define PHY_BCM_FLAGS_INTF_SGMII 0x00000010
4#define PHY_BRCM_STD_IBND_DISABLE 0x00000008 4#define PHY_BCM_FLAGS_INTF_XAUI 0x00000020
5#define PHY_BRCM_EXT_IBND_RX_ENABLE 0x00000010 5#define PHY_BRCM_WIRESPEED_ENABLE 0x00000100
6#define PHY_BRCM_EXT_IBND_TX_ENABLE 0x00000020 6#define PHY_BRCM_AUTO_PWRDWN_ENABLE 0x00000200
7#define PHY_BRCM_RX_REFCLK_UNUSED 0x00000400
8#define PHY_BRCM_STD_IBND_DISABLE 0x00000800
9#define PHY_BRCM_EXT_IBND_RX_ENABLE 0x00001000
10#define PHY_BRCM_EXT_IBND_TX_ENABLE 0x00002000
11#define PHY_BRCM_CLEAR_RGMII_MODE 0x00004000
12#define PHY_BRCM_DIS_TXCRXC_NOENRGY 0x00008000
13#define PHY_BCM_FLAGS_VALID 0x80000000
diff --git a/include/linux/can/core.h b/include/linux/can/core.h
index 25085cbadcfc..6c507bea275f 100644
--- a/include/linux/can/core.h
+++ b/include/linux/can/core.h
@@ -32,14 +32,12 @@
32 * struct can_proto - CAN protocol structure 32 * struct can_proto - CAN protocol structure
33 * @type: type argument in socket() syscall, e.g. SOCK_DGRAM. 33 * @type: type argument in socket() syscall, e.g. SOCK_DGRAM.
34 * @protocol: protocol number in socket() syscall. 34 * @protocol: protocol number in socket() syscall.
35 * @capability: capability needed to open the socket, or -1 for no restriction.
36 * @ops: pointer to struct proto_ops for sock->ops. 35 * @ops: pointer to struct proto_ops for sock->ops.
37 * @prot: pointer to struct proto structure. 36 * @prot: pointer to struct proto structure.
38 */ 37 */
39struct can_proto { 38struct can_proto {
40 int type; 39 int type;
41 int protocol; 40 int protocol;
42 int capability;
43 struct proto_ops *ops; 41 struct proto_ops *ops;
44 struct proto *prot; 42 struct proto *prot;
45}; 43};
diff --git a/include/linux/can/dev.h b/include/linux/can/dev.h
index 5824b20b5fcb..1ed2a5cc03f5 100644
--- a/include/linux/can/dev.h
+++ b/include/linux/can/dev.h
@@ -29,8 +29,6 @@ enum can_mode {
29/* 29/*
30 * CAN common private data 30 * CAN common private data
31 */ 31 */
32#define CAN_ECHO_SKB_MAX 4
33
34struct can_priv { 32struct can_priv {
35 struct can_device_stats can_stats; 33 struct can_device_stats can_stats;
36 34
@@ -44,15 +42,16 @@ struct can_priv {
44 int restart_ms; 42 int restart_ms;
45 struct timer_list restart_timer; 43 struct timer_list restart_timer;
46 44
47 struct sk_buff *echo_skb[CAN_ECHO_SKB_MAX];
48
49 int (*do_set_bittiming)(struct net_device *dev); 45 int (*do_set_bittiming)(struct net_device *dev);
50 int (*do_set_mode)(struct net_device *dev, enum can_mode mode); 46 int (*do_set_mode)(struct net_device *dev, enum can_mode mode);
51 int (*do_get_state)(const struct net_device *dev, 47 int (*do_get_state)(const struct net_device *dev,
52 enum can_state *state); 48 enum can_state *state);
49
50 unsigned int echo_skb_max;
51 struct sk_buff **echo_skb;
53}; 52};
54 53
55struct net_device *alloc_candev(int sizeof_priv); 54struct net_device *alloc_candev(int sizeof_priv, unsigned int echo_skb_max);
56void free_candev(struct net_device *dev); 55void free_candev(struct net_device *dev);
57 56
58int open_candev(struct net_device *dev); 57int open_candev(struct net_device *dev);
@@ -64,8 +63,13 @@ void unregister_candev(struct net_device *dev);
64int can_restart_now(struct net_device *dev); 63int can_restart_now(struct net_device *dev);
65void can_bus_off(struct net_device *dev); 64void can_bus_off(struct net_device *dev);
66 65
67void can_put_echo_skb(struct sk_buff *skb, struct net_device *dev, int idx); 66void can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
68void can_get_echo_skb(struct net_device *dev, int idx); 67 unsigned int idx);
69void can_free_echo_skb(struct net_device *dev, int idx); 68void can_get_echo_skb(struct net_device *dev, unsigned int idx);
69void can_free_echo_skb(struct net_device *dev, unsigned int idx);
70
71struct sk_buff *alloc_can_skb(struct net_device *dev, struct can_frame **cf);
72struct sk_buff *alloc_can_err_skb(struct net_device *dev,
73 struct can_frame **cf);
70 74
71#endif /* CAN_DEV_H */ 75#endif /* CAN_DEV_H */
diff --git a/include/linux/can/platform/ti_hecc.h b/include/linux/can/platform/ti_hecc.h
new file mode 100644
index 000000000000..4688c7bb1bd1
--- /dev/null
+++ b/include/linux/can/platform/ti_hecc.h
@@ -0,0 +1,40 @@
1/*
2 * TI HECC (High End CAN Controller) driver platform header
3 *
4 * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation version 2.
9 *
10 * This program is distributed as is WITHOUT ANY WARRANTY of any
11 * kind, whether express or implied; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 */
16
17/**
18 * struct hecc_platform_data - HECC Platform Data
19 *
20 * @scc_hecc_offset: mostly 0 - should really never change
21 * @scc_ram_offset: SCC RAM offset
22 * @hecc_ram_offset: HECC RAM offset
23 * @mbx_offset: Mailbox RAM offset
24 * @int_line: Interrupt line to use - 0 or 1
25 * @version: version for future use
26 *
27 * Platform data structure to get all platform specific settings.
28 * this structure also accounts the fact that the IP may have different
29 * RAM and mailbox offsets for different SOC's
30 */
31struct ti_hecc_platform_data {
32 u32 scc_hecc_offset;
33 u32 scc_ram_offset;
34 u32 hecc_ram_offset;
35 u32 mbx_offset;
36 u32 int_line;
37 u32 version;
38};
39
40
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index b62bb9294d0c..0008dee66514 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -37,7 +37,7 @@ extern void cgroup_exit(struct task_struct *p, int run_callbacks);
37extern int cgroupstats_build(struct cgroupstats *stats, 37extern int cgroupstats_build(struct cgroupstats *stats,
38 struct dentry *dentry); 38 struct dentry *dentry);
39 39
40extern struct file_operations proc_cgroup_operations; 40extern const struct file_operations proc_cgroup_operations;
41 41
42/* Define the enumeration of all cgroup subsystems */ 42/* Define the enumeration of all cgroup subsystems */
43#define SUBSYS(_x) _x ## _subsys_id, 43#define SUBSYS(_x) _x ## _subsys_id,
diff --git a/include/linux/dn.h b/include/linux/dn.h
index fe9990823193..9c50445462d9 100644
--- a/include/linux/dn.h
+++ b/include/linux/dn.h
@@ -71,14 +71,12 @@
71/* Structures */ 71/* Structures */
72 72
73 73
74struct dn_naddr 74struct dn_naddr {
75{
76 __le16 a_len; 75 __le16 a_len;
77 __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */ 76 __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
78}; 77};
79 78
80struct sockaddr_dn 79struct sockaddr_dn {
81{
82 __u16 sdn_family; 80 __u16 sdn_family;
83 __u8 sdn_flags; 81 __u8 sdn_flags;
84 __u8 sdn_objnum; 82 __u8 sdn_objnum;
@@ -101,8 +99,7 @@ struct optdata_dn {
101 __u8 opt_data[16]; /* User data */ 99 __u8 opt_data[16]; /* User data */
102}; 100};
103 101
104struct accessdata_dn 102struct accessdata_dn {
105{
106 __u8 acc_accl; 103 __u8 acc_accl;
107 __u8 acc_acc[DN_MAXACCL]; 104 __u8 acc_acc[DN_MAXACCL];
108 __u8 acc_passl; 105 __u8 acc_passl;
diff --git a/include/linux/errqueue.h b/include/linux/errqueue.h
index ec12cc74366f..034072cea853 100644
--- a/include/linux/errqueue.h
+++ b/include/linux/errqueue.h
@@ -3,8 +3,7 @@
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6struct sock_extended_err 6struct sock_extended_err {
7{
8 __u32 ee_errno; 7 __u32 ee_errno;
9 __u8 ee_origin; 8 __u8 ee_origin;
10 __u8 ee_type; 9 __u8 ee_type;
@@ -31,8 +30,7 @@ struct sock_extended_err
31 30
32#define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb)) 31#define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb))
33 32
34struct sock_exterr_skb 33struct sock_exterr_skb {
35{
36 union { 34 union {
37 struct inet_skb_parm h4; 35 struct inet_skb_parm h4;
38#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) 36#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 15e4eb713694..edd03b79e8f8 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -495,13 +495,10 @@ struct ethtool_ops {
495 u32 (*get_priv_flags)(struct net_device *); 495 u32 (*get_priv_flags)(struct net_device *);
496 int (*set_priv_flags)(struct net_device *, u32); 496 int (*set_priv_flags)(struct net_device *, u32);
497 int (*get_sset_count)(struct net_device *, int); 497 int (*get_sset_count)(struct net_device *, int);
498
499 /* the following hooks are obsolete */
500 int (*self_test_count)(struct net_device *);/* use get_sset_count */
501 int (*get_stats_count)(struct net_device *);/* use get_sset_count */
502 int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *); 498 int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *);
503 int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); 499 int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
504 int (*flash_device)(struct net_device *, struct ethtool_flash *); 500 int (*flash_device)(struct net_device *, struct ethtool_flash *);
501 int (*reset)(struct net_device *, u32 *);
505}; 502};
506#endif /* __KERNEL__ */ 503#endif /* __KERNEL__ */
507 504
@@ -559,6 +556,7 @@ struct ethtool_ops {
559#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */ 556#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
560#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */ 557#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
561#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */ 558#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
559#define ETHTOOL_RESET 0x00000034 /* Reset hardware */
562 560
563/* compatibility with older code */ 561/* compatibility with older code */
564#define SPARC_ETH_GSET ETHTOOL_GSET 562#define SPARC_ETH_GSET ETHTOOL_GSET
@@ -676,6 +674,8 @@ struct ethtool_ops {
676#define AH_V6_FLOW 0x0b 674#define AH_V6_FLOW 0x0b
677#define ESP_V6_FLOW 0x0c 675#define ESP_V6_FLOW 0x0c
678#define IP_USER_FLOW 0x0d 676#define IP_USER_FLOW 0x0d
677#define IPV4_FLOW 0x10
678#define IPV6_FLOW 0x11
679 679
680/* L3-L4 network traffic flow hash options */ 680/* L3-L4 network traffic flow hash options */
681#define RXH_L2DA (1 << 1) 681#define RXH_L2DA (1 << 1)
@@ -689,4 +689,34 @@ struct ethtool_ops {
689 689
690#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL 690#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
691 691
692/* Reset flags */
693/* The reset() operation must clear the flags for the components which
694 * were actually reset. On successful return, the flags indicate the
695 * components which were not reset, either because they do not exist
696 * in the hardware or because they cannot be reset independently. The
697 * driver must never reset any components that were not requested.
698 */
699enum ethtool_reset_flags {
700 /* These flags represent components dedicated to the interface
701 * the command is addressed to. Shift any flag left by
702 * ETH_RESET_SHARED_SHIFT to reset a shared component of the
703 * same type.
704 */
705 ETH_RESET_MGMT = 1 << 0, /* Management processor */
706 ETH_RESET_IRQ = 1 << 1, /* Interrupt requester */
707 ETH_RESET_DMA = 1 << 2, /* DMA engine */
708 ETH_RESET_FILTER = 1 << 3, /* Filtering/flow direction */
709 ETH_RESET_OFFLOAD = 1 << 4, /* Protocol offload */
710 ETH_RESET_MAC = 1 << 5, /* Media access controller */
711 ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */
712 ETH_RESET_RAM = 1 << 7, /* RAM shared between
713 * multiple components */
714
715 ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to
716 * this interface */
717 ETH_RESET_ALL = 0xffffffff, /* All components used by this
718 * interface, even if shared */
719};
720#define ETH_RESET_SHARED_SHIFT 16
721
692#endif /* _LINUX_ETHTOOL_H */ 722#endif /* _LINUX_ETHTOOL_H */
diff --git a/include/linux/fb.h b/include/linux/fb.h
index f847df9e99b6..a34bdf5a9d23 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -133,6 +133,7 @@ struct dentry;
133#define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */ 133#define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */
134#define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */ 134#define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */
135#define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */ 135#define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */
136#define FB_ACCEL_PXA3XX 99 /* PXA3xx */
136 137
137#define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */ 138#define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */
138#define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */ 139#define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */
diff --git a/include/linux/fib_rules.h b/include/linux/fib_rules.h
index 87b606b63f1e..c7e5b700bb91 100644
--- a/include/linux/fib_rules.h
+++ b/include/linux/fib_rules.h
@@ -13,8 +13,7 @@
13/* try to find source address in routing lookups */ 13/* try to find source address in routing lookups */
14#define FIB_RULE_FIND_SADDR 0x00010000 14#define FIB_RULE_FIND_SADDR 0x00010000
15 15
16struct fib_rule_hdr 16struct fib_rule_hdr {
17{
18 __u8 family; 17 __u8 family;
19 __u8 dst_len; 18 __u8 dst_len;
20 __u8 src_len; 19 __u8 src_len;
@@ -28,8 +27,7 @@ struct fib_rule_hdr
28 __u32 flags; 27 __u32 flags;
29}; 28};
30 29
31enum 30enum {
32{
33 FRA_UNSPEC, 31 FRA_UNSPEC,
34 FRA_DST, /* destination address */ 32 FRA_DST, /* destination address */
35 FRA_SRC, /* source address */ 33 FRA_SRC, /* source address */
@@ -52,8 +50,7 @@ enum
52 50
53#define FRA_MAX (__FRA_MAX - 1) 51#define FRA_MAX (__FRA_MAX - 1)
54 52
55enum 53enum {
56{
57 FR_ACT_UNSPEC, 54 FR_ACT_UNSPEC,
58 FR_ACT_TO_TBL, /* Pass to fixed table */ 55 FR_ACT_TO_TBL, /* Pass to fixed table */
59 FR_ACT_GOTO, /* Jump to another rule */ 56 FR_ACT_GOTO, /* Jump to another rule */
diff --git a/include/linux/filter.h b/include/linux/filter.h
index 1354aaf6abbe..29a0e3db9f43 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -23,16 +23,14 @@
23 * the BPF code definitions which need to match so you can share filters 23 * the BPF code definitions which need to match so you can share filters
24 */ 24 */
25 25
26struct sock_filter /* Filter block */ 26struct sock_filter { /* Filter block */
27{
28 __u16 code; /* Actual filter code */ 27 __u16 code; /* Actual filter code */
29 __u8 jt; /* Jump true */ 28 __u8 jt; /* Jump true */
30 __u8 jf; /* Jump false */ 29 __u8 jf; /* Jump false */
31 __u32 k; /* Generic multiuse field */ 30 __u32 k; /* Generic multiuse field */
32}; 31};
33 32
34struct sock_fprog /* Required for SO_ATTACH_FILTER. */ 33struct sock_fprog { /* Required for SO_ATTACH_FILTER. */
35{
36 unsigned short len; /* Number of filter blocks */ 34 unsigned short len; /* Number of filter blocks */
37 struct sock_filter __user *filter; 35 struct sock_filter __user *filter;
38}; 36};
@@ -123,7 +121,9 @@ struct sock_fprog /* Required for SO_ATTACH_FILTER. */
123#define SKF_AD_IFINDEX 8 121#define SKF_AD_IFINDEX 8
124#define SKF_AD_NLATTR 12 122#define SKF_AD_NLATTR 12
125#define SKF_AD_NLATTR_NEST 16 123#define SKF_AD_NLATTR_NEST 16
126#define SKF_AD_MAX 20 124#define SKF_AD_MARK 20
125#define SKF_AD_QUEUE 24
126#define SKF_AD_MAX 28
127#define SKF_NET_OFF (-0x100000) 127#define SKF_NET_OFF (-0x100000)
128#define SKF_LL_OFF (-0x200000) 128#define SKF_LL_OFF (-0x200000)
129 129
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 2adaa2529f18..2620a8c63571 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -300,6 +300,10 @@ struct inodes_stat_t {
300#define BLKTRACESTOP _IO(0x12,117) 300#define BLKTRACESTOP _IO(0x12,117)
301#define BLKTRACETEARDOWN _IO(0x12,118) 301#define BLKTRACETEARDOWN _IO(0x12,118)
302#define BLKDISCARD _IO(0x12,119) 302#define BLKDISCARD _IO(0x12,119)
303#define BLKIOMIN _IO(0x12,120)
304#define BLKIOOPT _IO(0x12,121)
305#define BLKALIGNOFF _IO(0x12,122)
306#define BLKPBSZGET _IO(0x12,123)
303 307
304#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ 308#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
305#define FIBMAP _IO(0x00,1) /* bmap access */ 309#define FIBMAP _IO(0x00,1) /* bmap access */
@@ -2446,7 +2450,7 @@ static int __fops ## _open(struct inode *inode, struct file *file) \
2446 __simple_attr_check_format(__fmt, 0ull); \ 2450 __simple_attr_check_format(__fmt, 0ull); \
2447 return simple_attr_open(inode, file, __get, __set, __fmt); \ 2451 return simple_attr_open(inode, file, __get, __set, __fmt); \
2448} \ 2452} \
2449static struct file_operations __fops = { \ 2453static const struct file_operations __fops = { \
2450 .owner = THIS_MODULE, \ 2454 .owner = THIS_MODULE, \
2451 .open = __fops ## _open, \ 2455 .open = __fops ## _open, \
2452 .release = simple_attr_release, \ 2456 .release = simple_attr_release, \
diff --git a/include/linux/gen_stats.h b/include/linux/gen_stats.h
index 710e901085d0..552c8a0a12d1 100644
--- a/include/linux/gen_stats.h
+++ b/include/linux/gen_stats.h
@@ -18,13 +18,11 @@ enum {
18 * @bytes: number of seen bytes 18 * @bytes: number of seen bytes
19 * @packets: number of seen packets 19 * @packets: number of seen packets
20 */ 20 */
21struct gnet_stats_basic 21struct gnet_stats_basic {
22{
23 __u64 bytes; 22 __u64 bytes;
24 __u32 packets; 23 __u32 packets;
25}; 24};
26struct gnet_stats_basic_packed 25struct gnet_stats_basic_packed {
27{
28 __u64 bytes; 26 __u64 bytes;
29 __u32 packets; 27 __u32 packets;
30} __attribute__ ((packed)); 28} __attribute__ ((packed));
@@ -34,8 +32,7 @@ struct gnet_stats_basic_packed
34 * @bps: current byte rate 32 * @bps: current byte rate
35 * @pps: current packet rate 33 * @pps: current packet rate
36 */ 34 */
37struct gnet_stats_rate_est 35struct gnet_stats_rate_est {
38{
39 __u32 bps; 36 __u32 bps;
40 __u32 pps; 37 __u32 pps;
41}; 38};
@@ -48,8 +45,7 @@ struct gnet_stats_rate_est
48 * @requeues: number of requeues 45 * @requeues: number of requeues
49 * @overlimits: number of enqueues over the limit 46 * @overlimits: number of enqueues over the limit
50 */ 47 */
51struct gnet_stats_queue 48struct gnet_stats_queue {
52{
53 __u32 qlen; 49 __u32 qlen;
54 __u32 backlog; 50 __u32 backlog;
55 __u32 drops; 51 __u32 drops;
@@ -62,8 +58,7 @@ struct gnet_stats_queue
62 * @interval: sampling period 58 * @interval: sampling period
63 * @ewma_log: the log of measurement window weight 59 * @ewma_log: the log of measurement window weight
64 */ 60 */
65struct gnet_estimator 61struct gnet_estimator {
66{
67 signed char interval; 62 signed char interval;
68 unsigned char ewma_log; 63 unsigned char ewma_log;
69}; 64};
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 297df45ffd0a..7beaa21b3880 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -98,7 +98,7 @@ struct hd_struct {
98 int make_it_fail; 98 int make_it_fail;
99#endif 99#endif
100 unsigned long stamp; 100 unsigned long stamp;
101 int in_flight[2]; 101 int in_flight;
102#ifdef CONFIG_SMP 102#ifdef CONFIG_SMP
103 struct disk_stats *dkstats; 103 struct disk_stats *dkstats;
104#else 104#else
@@ -322,23 +322,18 @@ static inline void free_part_stats(struct hd_struct *part)
322#define part_stat_sub(cpu, gendiskp, field, subnd) \ 322#define part_stat_sub(cpu, gendiskp, field, subnd) \
323 part_stat_add(cpu, gendiskp, field, -subnd) 323 part_stat_add(cpu, gendiskp, field, -subnd)
324 324
325static inline void part_inc_in_flight(struct hd_struct *part, int rw) 325static inline void part_inc_in_flight(struct hd_struct *part)
326{ 326{
327 part->in_flight[rw]++; 327 part->in_flight++;
328 if (part->partno) 328 if (part->partno)
329 part_to_disk(part)->part0.in_flight[rw]++; 329 part_to_disk(part)->part0.in_flight++;
330} 330}
331 331
332static inline void part_dec_in_flight(struct hd_struct *part, int rw) 332static inline void part_dec_in_flight(struct hd_struct *part)
333{ 333{
334 part->in_flight[rw]--; 334 part->in_flight--;
335 if (part->partno) 335 if (part->partno)
336 part_to_disk(part)->part0.in_flight[rw]--; 336 part_to_disk(part)->part0.in_flight--;
337}
338
339static inline int part_in_flight(struct hd_struct *part)
340{
341 return part->in_flight[0] + part->in_flight[1];
342} 337}
343 338
344/* block/blk-core.c */ 339/* block/blk-core.c */
@@ -551,8 +546,6 @@ extern ssize_t part_size_show(struct device *dev,
551 struct device_attribute *attr, char *buf); 546 struct device_attribute *attr, char *buf);
552extern ssize_t part_stat_show(struct device *dev, 547extern ssize_t part_stat_show(struct device *dev,
553 struct device_attribute *attr, char *buf); 548 struct device_attribute *attr, char *buf);
554extern ssize_t part_inflight_show(struct device *dev,
555 struct device_attribute *attr, char *buf);
556#ifdef CONFIG_FAIL_MAKE_REQUEST 549#ifdef CONFIG_FAIL_MAKE_REQUEST
557extern ssize_t part_fail_show(struct device *dev, 550extern ssize_t part_fail_show(struct device *dev,
558 struct device_attribute *attr, char *buf); 551 struct device_attribute *attr, char *buf);
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index 11ab19ac6b3d..41a59afc70fa 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -3,15 +3,15 @@
3 3
4#include <linux/fs.h> 4#include <linux/fs.h>
5 5
6struct ctl_table;
7struct user_struct;
8
6#ifdef CONFIG_HUGETLB_PAGE 9#ifdef CONFIG_HUGETLB_PAGE
7 10
8#include <linux/mempolicy.h> 11#include <linux/mempolicy.h>
9#include <linux/shm.h> 12#include <linux/shm.h>
10#include <asm/tlbflush.h> 13#include <asm/tlbflush.h>
11 14
12struct ctl_table;
13struct user_struct;
14
15int PageHuge(struct page *page); 15int PageHuge(struct page *page);
16 16
17static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) 17static inline int is_vm_hugetlb_page(struct vm_area_struct *vma)
@@ -163,7 +163,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb)
163} 163}
164 164
165extern const struct file_operations hugetlbfs_file_operations; 165extern const struct file_operations hugetlbfs_file_operations;
166extern struct vm_operations_struct hugetlb_vm_ops; 166extern const struct vm_operations_struct hugetlb_vm_ops;
167struct file *hugetlb_file_setup(const char *name, size_t size, int acct, 167struct file *hugetlb_file_setup(const char *name, size_t size, int acct,
168 struct user_struct **user, int creat_flags); 168 struct user_struct **user, int creat_flags);
169int hugetlb_get_quota(struct address_space *mapping, long delta); 169int hugetlb_get_quota(struct address_space *mapping, long delta);
@@ -187,7 +187,11 @@ static inline void set_file_hugepages(struct file *file)
187 187
188#define is_file_hugepages(file) 0 188#define is_file_hugepages(file) 0
189#define set_file_hugepages(file) BUG() 189#define set_file_hugepages(file) BUG()
190#define hugetlb_file_setup(name,size,acct,user,creat) ERR_PTR(-ENOSYS) 190static inline struct file *hugetlb_file_setup(const char *name, size_t size,
191 int acctflag, struct user_struct **user, int creat_flags)
192{
193 return ERR_PTR(-ENOSYS);
194}
191 195
192#endif /* !CONFIG_HUGETLBFS */ 196#endif /* !CONFIG_HUGETLBFS */
193 197
diff --git a/include/linux/if.h b/include/linux/if.h
index b9a6229f3be7..3b2a46bf8f8d 100644
--- a/include/linux/if.h
+++ b/include/linux/if.h
@@ -125,8 +125,7 @@ enum {
125 * being very small might be worth keeping for clean configuration. 125 * being very small might be worth keeping for clean configuration.
126 */ 126 */
127 127
128struct ifmap 128struct ifmap {
129{
130 unsigned long mem_start; 129 unsigned long mem_start;
131 unsigned long mem_end; 130 unsigned long mem_end;
132 unsigned short base_addr; 131 unsigned short base_addr;
@@ -136,8 +135,7 @@ struct ifmap
136 /* 3 bytes spare */ 135 /* 3 bytes spare */
137}; 136};
138 137
139struct if_settings 138struct if_settings {
140{
141 unsigned int type; /* Type of physical device or protocol */ 139 unsigned int type; /* Type of physical device or protocol */
142 unsigned int size; /* Size of the data allocated by the caller */ 140 unsigned int size; /* Size of the data allocated by the caller */
143 union { 141 union {
@@ -161,8 +159,7 @@ struct if_settings
161 * remainder may be interface specific. 159 * remainder may be interface specific.
162 */ 160 */
163 161
164struct ifreq 162struct ifreq {
165{
166#define IFHWADDRLEN 6 163#define IFHWADDRLEN 6
167 union 164 union
168 { 165 {
@@ -211,11 +208,9 @@ struct ifreq
211 * must know all networks accessible). 208 * must know all networks accessible).
212 */ 209 */
213 210
214struct ifconf 211struct ifconf {
215{
216 int ifc_len; /* size of buffer */ 212 int ifc_len; /* size of buffer */
217 union 213 union {
218 {
219 char __user *ifcu_buf; 214 char __user *ifcu_buf;
220 struct ifreq __user *ifcu_req; 215 struct ifreq __user *ifcu_req;
221 } ifc_ifcu; 216 } ifc_ifcu;
diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h
index fd9740466757..23357ab81a77 100644
--- a/include/linux/if_addr.h
+++ b/include/linux/if_addr.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netlink.h> 5#include <linux/netlink.h>
6 6
7struct ifaddrmsg 7struct ifaddrmsg {
8{
9 __u8 ifa_family; 8 __u8 ifa_family;
10 __u8 ifa_prefixlen; /* The prefix length */ 9 __u8 ifa_prefixlen; /* The prefix length */
11 __u8 ifa_flags; /* Flags */ 10 __u8 ifa_flags; /* Flags */
@@ -20,8 +19,7 @@ struct ifaddrmsg
20 * but for point-to-point IFA_ADDRESS is DESTINATION address, 19 * but for point-to-point IFA_ADDRESS is DESTINATION address,
21 * local address is supplied in IFA_LOCAL attribute. 20 * local address is supplied in IFA_LOCAL attribute.
22 */ 21 */
23enum 22enum {
24{
25 IFA_UNSPEC, 23 IFA_UNSPEC,
26 IFA_ADDRESS, 24 IFA_ADDRESS,
27 IFA_LOCAL, 25 IFA_LOCAL,
@@ -47,8 +45,7 @@ enum
47#define IFA_F_TENTATIVE 0x40 45#define IFA_F_TENTATIVE 0x40
48#define IFA_F_PERMANENT 0x80 46#define IFA_F_PERMANENT 0x80
49 47
50struct ifa_cacheinfo 48struct ifa_cacheinfo {
51{
52 __u32 ifa_prefered; 49 __u32 ifa_prefered;
53 __u32 ifa_valid; 50 __u32 ifa_valid;
54 __u32 cstamp; /* created timestamp, hundredths of seconds */ 51 __u32 cstamp; /* created timestamp, hundredths of seconds */
diff --git a/include/linux/if_addrlabel.h b/include/linux/if_addrlabel.h
index 89571f65d6de..54580c298187 100644
--- a/include/linux/if_addrlabel.h
+++ b/include/linux/if_addrlabel.h
@@ -12,8 +12,7 @@
12 12
13#include <linux/types.h> 13#include <linux/types.h>
14 14
15struct ifaddrlblmsg 15struct ifaddrlblmsg {
16{
17 __u8 ifal_family; /* Address family */ 16 __u8 ifal_family; /* Address family */
18 __u8 __ifal_reserved; /* Reserved */ 17 __u8 __ifal_reserved; /* Reserved */
19 __u8 ifal_prefixlen; /* Prefix length */ 18 __u8 ifal_prefixlen; /* Prefix length */
@@ -22,8 +21,7 @@ struct ifaddrlblmsg
22 __u32 ifal_seq; /* sequence number */ 21 __u32 ifal_seq; /* sequence number */
23}; 22};
24 23
25enum 24enum {
26{
27 IFAL_ADDRESS = 1, 25 IFAL_ADDRESS = 1,
28 IFAL_LABEL = 2, 26 IFAL_LABEL = 2,
29 __IFAL_MAX 27 __IFAL_MAX
diff --git a/include/linux/if_arcnet.h b/include/linux/if_arcnet.h
index 0835debab115..46e34bd0e783 100644
--- a/include/linux/if_arcnet.h
+++ b/include/linux/if_arcnet.h
@@ -56,8 +56,7 @@
56/* 56/*
57 * The RFC1201-specific components of an arcnet packet header. 57 * The RFC1201-specific components of an arcnet packet header.
58 */ 58 */
59struct arc_rfc1201 59struct arc_rfc1201 {
60{
61 __u8 proto; /* protocol ID field - varies */ 60 __u8 proto; /* protocol ID field - varies */
62 __u8 split_flag; /* for use with split packets */ 61 __u8 split_flag; /* for use with split packets */
63 __be16 sequence; /* sequence number */ 62 __be16 sequence; /* sequence number */
@@ -69,8 +68,7 @@ struct arc_rfc1201
69/* 68/*
70 * The RFC1051-specific components. 69 * The RFC1051-specific components.
71 */ 70 */
72struct arc_rfc1051 71struct arc_rfc1051 {
73{
74 __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */ 72 __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */
75 __u8 payload[0]; /* 507 bytes */ 73 __u8 payload[0]; /* 507 bytes */
76}; 74};
@@ -81,8 +79,7 @@ struct arc_rfc1051
81 * The ethernet-encap-specific components. We have a real ethernet header 79 * The ethernet-encap-specific components. We have a real ethernet header
82 * and some data. 80 * and some data.
83 */ 81 */
84struct arc_eth_encap 82struct arc_eth_encap {
85{
86 __u8 proto; /* Always ARC_P_ETHER */ 83 __u8 proto; /* Always ARC_P_ETHER */
87 struct ethhdr eth; /* standard ethernet header (yuck!) */ 84 struct ethhdr eth; /* standard ethernet header (yuck!) */
88 __u8 payload[0]; /* 493 bytes */ 85 __u8 payload[0]; /* 493 bytes */
@@ -90,8 +87,7 @@ struct arc_eth_encap
90#define ETH_ENCAP_HDR_SIZE 14 87#define ETH_ENCAP_HDR_SIZE 14
91 88
92 89
93struct arc_cap 90struct arc_cap {
94{
95 __u8 proto; 91 __u8 proto;
96 __u8 cookie[sizeof(int)]; /* Actually NOT sent over the network */ 92 __u8 cookie[sizeof(int)]; /* Actually NOT sent over the network */
97 union { 93 union {
@@ -108,8 +104,7 @@ struct arc_cap
108 * the _end_ of the 512-byte buffer. We hide this complexity inside the 104 * the _end_ of the 512-byte buffer. We hide this complexity inside the
109 * driver. 105 * driver.
110 */ 106 */
111struct arc_hardware 107struct arc_hardware {
112{
113 __u8 source, /* source ARCnet - filled in automagically */ 108 __u8 source, /* source ARCnet - filled in automagically */
114 dest, /* destination ARCnet - 0 for broadcast */ 109 dest, /* destination ARCnet - 0 for broadcast */
115 offset[2]; /* offset bytes (some weird semantics) */ 110 offset[2]; /* offset bytes (some weird semantics) */
@@ -120,8 +115,7 @@ struct arc_hardware
120 * This is an ARCnet frame header, as seen by the kernel (and userspace, 115 * This is an ARCnet frame header, as seen by the kernel (and userspace,
121 * when you do a raw packet capture). 116 * when you do a raw packet capture).
122 */ 117 */
123struct archdr 118struct archdr {
124{
125 /* hardware requirements */ 119 /* hardware requirements */
126 struct arc_hardware hard; 120 struct arc_hardware hard;
127 121
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h
index 282eb37e2dec..e80b7f88f7c6 100644
--- a/include/linux/if_arp.h
+++ b/include/linux/if_arp.h
@@ -133,8 +133,7 @@ struct arpreq_old {
133 * This structure defines an ethernet arp header. 133 * This structure defines an ethernet arp header.
134 */ 134 */
135 135
136struct arphdr 136struct arphdr {
137{
138 __be16 ar_hrd; /* format of hardware address */ 137 __be16 ar_hrd; /* format of hardware address */
139 __be16 ar_pro; /* format of protocol address */ 138 __be16 ar_pro; /* format of protocol address */
140 unsigned char ar_hln; /* length of hardware address */ 139 unsigned char ar_hln; /* length of hardware address */
diff --git a/include/linux/if_bonding.h b/include/linux/if_bonding.h
index 65c2d247068b..cd525fae3c98 100644
--- a/include/linux/if_bonding.h
+++ b/include/linux/if_bonding.h
@@ -94,8 +94,7 @@ typedef struct ifbond {
94 __s32 miimon; 94 __s32 miimon;
95} ifbond; 95} ifbond;
96 96
97typedef struct ifslave 97typedef struct ifslave {
98{
99 __s32 slave_id; /* Used as an IN param to the BOND_SLAVE_INFO_QUERY ioctl */ 98 __s32 slave_id; /* Used as an IN param to the BOND_SLAVE_INFO_QUERY ioctl */
100 char slave_name[IFNAMSIZ]; 99 char slave_name[IFNAMSIZ];
101 __s8 link; 100 __s8 link;
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 6badb3e2c4e4..938b7e81df95 100644
--- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h
@@ -49,8 +49,7 @@
49#define BR_STATE_FORWARDING 3 49#define BR_STATE_FORWARDING 3
50#define BR_STATE_BLOCKING 4 50#define BR_STATE_BLOCKING 4
51 51
52struct __bridge_info 52struct __bridge_info {
53{
54 __u64 designated_root; 53 __u64 designated_root;
55 __u64 bridge_id; 54 __u64 bridge_id;
56 __u32 root_path_cost; 55 __u32 root_path_cost;
@@ -72,8 +71,7 @@ struct __bridge_info
72 __u32 gc_timer_value; 71 __u32 gc_timer_value;
73}; 72};
74 73
75struct __port_info 74struct __port_info {
76{
77 __u64 designated_root; 75 __u64 designated_root;
78 __u64 designated_bridge; 76 __u64 designated_bridge;
79 __u16 port_id; 77 __u16 port_id;
@@ -89,8 +87,7 @@ struct __port_info
89 __u32 hold_timer_value; 87 __u32 hold_timer_value;
90}; 88};
91 89
92struct __fdb_entry 90struct __fdb_entry {
93{
94 __u8 mac_addr[6]; 91 __u8 mac_addr[6];
95 __u8 port_no; 92 __u8 port_no;
96 __u8 is_local; 93 __u8 is_local;
diff --git a/include/linux/if_ec.h b/include/linux/if_ec.h
index e7499aa79783..d85f9f48129f 100644
--- a/include/linux/if_ec.h
+++ b/include/linux/if_ec.h
@@ -5,14 +5,12 @@
5 5
6/* User visible stuff. Glibc provides its own but libc5 folk will use these */ 6/* User visible stuff. Glibc provides its own but libc5 folk will use these */
7 7
8struct ec_addr 8struct ec_addr {
9{
10 unsigned char station; /* Station number. */ 9 unsigned char station; /* Station number. */
11 unsigned char net; /* Network number. */ 10 unsigned char net; /* Network number. */
12}; 11};
13 12
14struct sockaddr_ec 13struct sockaddr_ec {
15{
16 unsigned short sec_family; 14 unsigned short sec_family;
17 unsigned char port; /* Port number. */ 15 unsigned char port; /* Port number. */
18 unsigned char cb; /* Control/flag byte. */ 16 unsigned char cb; /* Control/flag byte. */
@@ -37,8 +35,7 @@ struct sockaddr_ec
37#define EC_HLEN 6 35#define EC_HLEN 6
38 36
39/* This is what an Econet frame looks like on the wire. */ 37/* This is what an Econet frame looks like on the wire. */
40struct ec_framehdr 38struct ec_framehdr {
41{
42 unsigned char dst_stn; 39 unsigned char dst_stn;
43 unsigned char dst_net; 40 unsigned char dst_net;
44 unsigned char src_stn; 41 unsigned char src_stn;
@@ -62,8 +59,7 @@ static inline struct econet_sock *ec_sk(const struct sock *sk)
62 return (struct econet_sock *)sk; 59 return (struct econet_sock *)sk;
63} 60}
64 61
65struct ec_device 62struct ec_device {
66{
67 unsigned char station, net; /* Econet protocol address */ 63 unsigned char station, net; /* Econet protocol address */
68}; 64};
69 65
diff --git a/include/linux/if_fddi.h b/include/linux/if_fddi.h
index 45de1046dbbf..5459c5c09930 100644
--- a/include/linux/if_fddi.h
+++ b/include/linux/if_fddi.h
@@ -63,36 +63,32 @@
63#define FDDI_UI_CMD 0x03 63#define FDDI_UI_CMD 0x03
64 64
65/* Define 802.2 Type 1 header */ 65/* Define 802.2 Type 1 header */
66struct fddi_8022_1_hdr 66struct fddi_8022_1_hdr {
67 {
68 __u8 dsap; /* destination service access point */ 67 __u8 dsap; /* destination service access point */
69 __u8 ssap; /* source service access point */ 68 __u8 ssap; /* source service access point */
70 __u8 ctrl; /* control byte #1 */ 69 __u8 ctrl; /* control byte #1 */
71 } __attribute__ ((packed)); 70} __attribute__ ((packed));
72 71
73/* Define 802.2 Type 2 header */ 72/* Define 802.2 Type 2 header */
74struct fddi_8022_2_hdr 73struct fddi_8022_2_hdr {
75 {
76 __u8 dsap; /* destination service access point */ 74 __u8 dsap; /* destination service access point */
77 __u8 ssap; /* source service access point */ 75 __u8 ssap; /* source service access point */
78 __u8 ctrl_1; /* control byte #1 */ 76 __u8 ctrl_1; /* control byte #1 */
79 __u8 ctrl_2; /* control byte #2 */ 77 __u8 ctrl_2; /* control byte #2 */
80 } __attribute__ ((packed)); 78} __attribute__ ((packed));
81 79
82/* Define 802.2 SNAP header */ 80/* Define 802.2 SNAP header */
83#define FDDI_K_OUI_LEN 3 81#define FDDI_K_OUI_LEN 3
84struct fddi_snap_hdr 82struct fddi_snap_hdr {
85 {
86 __u8 dsap; /* always 0xAA */ 83 __u8 dsap; /* always 0xAA */
87 __u8 ssap; /* always 0xAA */ 84 __u8 ssap; /* always 0xAA */
88 __u8 ctrl; /* always 0x03 */ 85 __u8 ctrl; /* always 0x03 */
89 __u8 oui[FDDI_K_OUI_LEN]; /* organizational universal id */ 86 __u8 oui[FDDI_K_OUI_LEN]; /* organizational universal id */
90 __be16 ethertype; /* packet type ID field */ 87 __be16 ethertype; /* packet type ID field */
91 } __attribute__ ((packed)); 88} __attribute__ ((packed));
92 89
93/* Define FDDI LLC frame header */ 90/* Define FDDI LLC frame header */
94struct fddihdr 91struct fddihdr {
95 {
96 __u8 fc; /* frame control */ 92 __u8 fc; /* frame control */
97 __u8 daddr[FDDI_K_ALEN]; /* destination address */ 93 __u8 daddr[FDDI_K_ALEN]; /* destination address */
98 __u8 saddr[FDDI_K_ALEN]; /* source address */ 94 __u8 saddr[FDDI_K_ALEN]; /* source address */
@@ -102,7 +98,7 @@ struct fddihdr
102 struct fddi_8022_2_hdr llc_8022_2; 98 struct fddi_8022_2_hdr llc_8022_2;
103 struct fddi_snap_hdr llc_snap; 99 struct fddi_snap_hdr llc_snap;
104 } hdr; 100 } hdr;
105 } __attribute__ ((packed)); 101} __attribute__ ((packed));
106 102
107#ifdef __KERNEL__ 103#ifdef __KERNEL__
108#include <linux/netdevice.h> 104#include <linux/netdevice.h>
@@ -197,7 +193,7 @@ struct fddi_statistics {
197 __u32 port_pc_withhold[2]; 193 __u32 port_pc_withhold[2];
198 __u32 port_ler_flag[2]; 194 __u32 port_ler_flag[2];
199 __u32 port_hardware_present[2]; 195 __u32 port_hardware_present[2];
200 }; 196};
201#endif /* __KERNEL__ */ 197#endif /* __KERNEL__ */
202 198
203#endif /* _LINUX_IF_FDDI_H */ 199#endif /* _LINUX_IF_FDDI_H */
diff --git a/include/linux/if_hippi.h b/include/linux/if_hippi.h
index 4a7c9940b080..8d038eb8db5c 100644
--- a/include/linux/if_hippi.h
+++ b/include/linux/if_hippi.h
@@ -51,8 +51,7 @@
51 * HIPPI statistics collection data. 51 * HIPPI statistics collection data.
52 */ 52 */
53 53
54struct hipnet_statistics 54struct hipnet_statistics {
55{
56 int rx_packets; /* total packets received */ 55 int rx_packets; /* total packets received */
57 int tx_packets; /* total packets transmitted */ 56 int tx_packets; /* total packets transmitted */
58 int rx_errors; /* bad packets received */ 57 int rx_errors; /* bad packets received */
@@ -77,8 +76,7 @@ struct hipnet_statistics
77}; 76};
78 77
79 78
80struct hippi_fp_hdr 79struct hippi_fp_hdr {
81{
82#if 0 80#if 0
83 __u8 ulp; /* must contain 4 */ 81 __u8 ulp; /* must contain 4 */
84#if defined (__BIG_ENDIAN_BITFIELD) 82#if defined (__BIG_ENDIAN_BITFIELD)
@@ -108,8 +106,7 @@ struct hippi_fp_hdr
108 __be32 d2_size; 106 __be32 d2_size;
109} __attribute__ ((packed)); 107} __attribute__ ((packed));
110 108
111struct hippi_le_hdr 109struct hippi_le_hdr {
112{
113#if defined (__BIG_ENDIAN_BITFIELD) 110#if defined (__BIG_ENDIAN_BITFIELD)
114 __u8 fc:3; 111 __u8 fc:3;
115 __u8 double_wide:1; 112 __u8 double_wide:1;
@@ -139,8 +136,7 @@ struct hippi_le_hdr
139 * Looks like the dsap and ssap fields have been swapped by mistake in 136 * Looks like the dsap and ssap fields have been swapped by mistake in
140 * RFC 2067 "IP over HIPPI". 137 * RFC 2067 "IP over HIPPI".
141 */ 138 */
142struct hippi_snap_hdr 139struct hippi_snap_hdr {
143{
144 __u8 dsap; /* always 0xAA */ 140 __u8 dsap; /* always 0xAA */
145 __u8 ssap; /* always 0xAA */ 141 __u8 ssap; /* always 0xAA */
146 __u8 ctrl; /* always 0x03 */ 142 __u8 ctrl; /* always 0x03 */
@@ -148,8 +144,7 @@ struct hippi_snap_hdr
148 __be16 ethertype; /* packet type ID field */ 144 __be16 ethertype; /* packet type ID field */
149} __attribute__ ((packed)); 145} __attribute__ ((packed));
150 146
151struct hippi_hdr 147struct hippi_hdr {
152{
153 struct hippi_fp_hdr fp; 148 struct hippi_fp_hdr fp;
154 struct hippi_le_hdr le; 149 struct hippi_le_hdr le;
155 struct hippi_snap_hdr snap; 150 struct hippi_snap_hdr snap;
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 176c5182c515..1d3b2425f661 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -5,8 +5,7 @@
5#include <linux/netlink.h> 5#include <linux/netlink.h>
6 6
7/* The struct should be in sync with struct net_device_stats */ 7/* The struct should be in sync with struct net_device_stats */
8struct rtnl_link_stats 8struct rtnl_link_stats {
9{
10 __u32 rx_packets; /* total packets received */ 9 __u32 rx_packets; /* total packets received */
11 __u32 tx_packets; /* total packets transmitted */ 10 __u32 tx_packets; /* total packets transmitted */
12 __u32 rx_bytes; /* total bytes received */ 11 __u32 rx_bytes; /* total bytes received */
@@ -39,8 +38,7 @@ struct rtnl_link_stats
39}; 38};
40 39
41/* The struct should be in sync with struct ifmap */ 40/* The struct should be in sync with struct ifmap */
42struct rtnl_link_ifmap 41struct rtnl_link_ifmap {
43{
44 __u64 mem_start; 42 __u64 mem_start;
45 __u64 mem_end; 43 __u64 mem_end;
46 __u64 base_addr; 44 __u64 base_addr;
@@ -49,8 +47,7 @@ struct rtnl_link_ifmap
49 __u8 port; 47 __u8 port;
50}; 48};
51 49
52enum 50enum {
53{
54 IFLA_UNSPEC, 51 IFLA_UNSPEC,
55 IFLA_ADDRESS, 52 IFLA_ADDRESS,
56 IFLA_BROADCAST, 53 IFLA_BROADCAST,
@@ -123,8 +120,7 @@ enum
123 */ 120 */
124 121
125/* Subtype attributes for IFLA_PROTINFO */ 122/* Subtype attributes for IFLA_PROTINFO */
126enum 123enum {
127{
128 IFLA_INET6_UNSPEC, 124 IFLA_INET6_UNSPEC,
129 IFLA_INET6_FLAGS, /* link flags */ 125 IFLA_INET6_FLAGS, /* link flags */
130 IFLA_INET6_CONF, /* sysctl parameters */ 126 IFLA_INET6_CONF, /* sysctl parameters */
@@ -137,16 +133,14 @@ enum
137 133
138#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1) 134#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
139 135
140struct ifla_cacheinfo 136struct ifla_cacheinfo {
141{
142 __u32 max_reasm_len; 137 __u32 max_reasm_len;
143 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */ 138 __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
144 __u32 reachable_time; 139 __u32 reachable_time;
145 __u32 retrans_time; 140 __u32 retrans_time;
146}; 141};
147 142
148enum 143enum {
149{
150 IFLA_INFO_UNSPEC, 144 IFLA_INFO_UNSPEC,
151 IFLA_INFO_KIND, 145 IFLA_INFO_KIND,
152 IFLA_INFO_DATA, 146 IFLA_INFO_DATA,
@@ -158,8 +152,7 @@ enum
158 152
159/* VLAN section */ 153/* VLAN section */
160 154
161enum 155enum {
162{
163 IFLA_VLAN_UNSPEC, 156 IFLA_VLAN_UNSPEC,
164 IFLA_VLAN_ID, 157 IFLA_VLAN_ID,
165 IFLA_VLAN_FLAGS, 158 IFLA_VLAN_FLAGS,
@@ -175,8 +168,7 @@ struct ifla_vlan_flags {
175 __u32 mask; 168 __u32 mask;
176}; 169};
177 170
178enum 171enum {
179{
180 IFLA_VLAN_QOS_UNSPEC, 172 IFLA_VLAN_QOS_UNSPEC,
181 IFLA_VLAN_QOS_MAPPING, 173 IFLA_VLAN_QOS_MAPPING,
182 __IFLA_VLAN_QOS_MAX 174 __IFLA_VLAN_QOS_MAX
@@ -184,8 +176,7 @@ enum
184 176
185#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1) 177#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1)
186 178
187struct ifla_vlan_qos_mapping 179struct ifla_vlan_qos_mapping {
188{
189 __u32 from; 180 __u32 from;
190 __u32 to; 181 __u32 to;
191}; 182};
diff --git a/include/linux/if_packet.h b/include/linux/if_packet.h
index dea7d6b7cf98..4021d47cc437 100644
--- a/include/linux/if_packet.h
+++ b/include/linux/if_packet.h
@@ -3,15 +3,13 @@
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6struct sockaddr_pkt 6struct sockaddr_pkt {
7{
8 unsigned short spkt_family; 7 unsigned short spkt_family;
9 unsigned char spkt_device[14]; 8 unsigned char spkt_device[14];
10 __be16 spkt_protocol; 9 __be16 spkt_protocol;
11}; 10};
12 11
13struct sockaddr_ll 12struct sockaddr_ll {
14{
15 unsigned short sll_family; 13 unsigned short sll_family;
16 __be16 sll_protocol; 14 __be16 sll_protocol;
17 int sll_ifindex; 15 int sll_ifindex;
@@ -49,14 +47,12 @@ struct sockaddr_ll
49#define PACKET_TX_RING 13 47#define PACKET_TX_RING 13
50#define PACKET_LOSS 14 48#define PACKET_LOSS 14
51 49
52struct tpacket_stats 50struct tpacket_stats {
53{
54 unsigned int tp_packets; 51 unsigned int tp_packets;
55 unsigned int tp_drops; 52 unsigned int tp_drops;
56}; 53};
57 54
58struct tpacket_auxdata 55struct tpacket_auxdata {
59{
60 __u32 tp_status; 56 __u32 tp_status;
61 __u32 tp_len; 57 __u32 tp_len;
62 __u32 tp_snaplen; 58 __u32 tp_snaplen;
@@ -78,8 +74,7 @@ struct tpacket_auxdata
78#define TP_STATUS_SENDING 0x2 74#define TP_STATUS_SENDING 0x2
79#define TP_STATUS_WRONG_FORMAT 0x4 75#define TP_STATUS_WRONG_FORMAT 0x4
80 76
81struct tpacket_hdr 77struct tpacket_hdr {
82{
83 unsigned long tp_status; 78 unsigned long tp_status;
84 unsigned int tp_len; 79 unsigned int tp_len;
85 unsigned int tp_snaplen; 80 unsigned int tp_snaplen;
@@ -93,8 +88,7 @@ struct tpacket_hdr
93#define TPACKET_ALIGN(x) (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1)) 88#define TPACKET_ALIGN(x) (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1))
94#define TPACKET_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll)) 89#define TPACKET_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll))
95 90
96struct tpacket2_hdr 91struct tpacket2_hdr {
97{
98 __u32 tp_status; 92 __u32 tp_status;
99 __u32 tp_len; 93 __u32 tp_len;
100 __u32 tp_snaplen; 94 __u32 tp_snaplen;
@@ -107,8 +101,7 @@ struct tpacket2_hdr
107 101
108#define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll)) 102#define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll))
109 103
110enum tpacket_versions 104enum tpacket_versions {
111{
112 TPACKET_V1, 105 TPACKET_V1,
113 TPACKET_V2, 106 TPACKET_V2,
114}; 107};
@@ -126,16 +119,14 @@ enum tpacket_versions
126 - Pad to align to TPACKET_ALIGNMENT=16 119 - Pad to align to TPACKET_ALIGNMENT=16
127 */ 120 */
128 121
129struct tpacket_req 122struct tpacket_req {
130{
131 unsigned int tp_block_size; /* Minimal size of contiguous block */ 123 unsigned int tp_block_size; /* Minimal size of contiguous block */
132 unsigned int tp_block_nr; /* Number of blocks */ 124 unsigned int tp_block_nr; /* Number of blocks */
133 unsigned int tp_frame_size; /* Size of frame */ 125 unsigned int tp_frame_size; /* Size of frame */
134 unsigned int tp_frame_nr; /* Total number of frames */ 126 unsigned int tp_frame_nr; /* Total number of frames */
135}; 127};
136 128
137struct packet_mreq 129struct packet_mreq {
138{
139 int mr_ifindex; 130 int mr_ifindex;
140 unsigned short mr_type; 131 unsigned short mr_type;
141 unsigned short mr_alen; 132 unsigned short mr_alen;
diff --git a/include/linux/if_plip.h b/include/linux/if_plip.h
index 153a649915a2..6298c7e88b2b 100644
--- a/include/linux/if_plip.h
+++ b/include/linux/if_plip.h
@@ -15,8 +15,7 @@
15 15
16#define SIOCDEVPLIP SIOCDEVPRIVATE 16#define SIOCDEVPLIP SIOCDEVPRIVATE
17 17
18struct plipconf 18struct plipconf {
19{
20 unsigned short pcmd; 19 unsigned short pcmd;
21 unsigned long nibble; 20 unsigned long nibble;
22 unsigned long trigger; 21 unsigned long trigger;
diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h
index 3a14b088c8ec..c58baea4a25b 100644
--- a/include/linux/if_pppol2tp.h
+++ b/include/linux/if_pppol2tp.h
@@ -24,8 +24,7 @@
24/* Structure used to connect() the socket to a particular tunnel UDP 24/* Structure used to connect() the socket to a particular tunnel UDP
25 * socket. 25 * socket.
26 */ 26 */
27struct pppol2tp_addr 27struct pppol2tp_addr {
28{
29 __kernel_pid_t pid; /* pid that owns the fd. 28 __kernel_pid_t pid; /* pid that owns the fd.
30 * 0 => current */ 29 * 0 => current */
31 int fd; /* FD of UDP socket to use */ 30 int fd; /* FD of UDP socket to use */
diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h
index 5a9aae4adb44..1822d635be6b 100644
--- a/include/linux/if_tunnel.h
+++ b/include/linux/if_tunnel.h
@@ -5,6 +5,7 @@
5 5
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7#include <linux/ip.h> 7#include <linux/ip.h>
8#include <linux/in6.h>
8#endif 9#endif
9 10
10#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0) 11#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
@@ -15,6 +16,10 @@
15#define SIOCADDPRL (SIOCDEVPRIVATE + 5) 16#define SIOCADDPRL (SIOCDEVPRIVATE + 5)
16#define SIOCDELPRL (SIOCDEVPRIVATE + 6) 17#define SIOCDELPRL (SIOCDEVPRIVATE + 6)
17#define SIOCCHGPRL (SIOCDEVPRIVATE + 7) 18#define SIOCCHGPRL (SIOCDEVPRIVATE + 7)
19#define SIOCGET6RD (SIOCDEVPRIVATE + 8)
20#define SIOCADD6RD (SIOCDEVPRIVATE + 9)
21#define SIOCDEL6RD (SIOCDEVPRIVATE + 10)
22#define SIOCCHG6RD (SIOCDEVPRIVATE + 11)
18 23
19#define GRE_CSUM __cpu_to_be16(0x8000) 24#define GRE_CSUM __cpu_to_be16(0x8000)
20#define GRE_ROUTING __cpu_to_be16(0x4000) 25#define GRE_ROUTING __cpu_to_be16(0x4000)
@@ -25,8 +30,7 @@
25#define GRE_FLAGS __cpu_to_be16(0x00F8) 30#define GRE_FLAGS __cpu_to_be16(0x00F8)
26#define GRE_VERSION __cpu_to_be16(0x0007) 31#define GRE_VERSION __cpu_to_be16(0x0007)
27 32
28struct ip_tunnel_parm 33struct ip_tunnel_parm {
29{
30 char name[IFNAMSIZ]; 34 char name[IFNAMSIZ];
31 int link; 35 int link;
32 __be16 i_flags; 36 __be16 i_flags;
@@ -51,8 +55,14 @@ struct ip_tunnel_prl {
51/* PRL flags */ 55/* PRL flags */
52#define PRL_DEFAULT 0x0001 56#define PRL_DEFAULT 0x0001
53 57
54enum 58struct ip_tunnel_6rd {
55{ 59 struct in6_addr prefix;
60 __be32 relay_prefix;
61 __u16 prefixlen;
62 __u16 relay_prefixlen;
63};
64
65enum {
56 IFLA_GRE_UNSPEC, 66 IFLA_GRE_UNSPEC,
57 IFLA_GRE_LINK, 67 IFLA_GRE_LINK,
58 IFLA_GRE_IFLAGS, 68 IFLA_GRE_IFLAGS,
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index 7ff9af1d0f05..153f6b9e722c 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -63,7 +63,11 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb)
63 return (struct vlan_ethhdr *)skb_mac_header(skb); 63 return (struct vlan_ethhdr *)skb_mac_header(skb);
64} 64}
65 65
66#define VLAN_VID_MASK 0xfff 66#define VLAN_PRIO_MASK 0xe000 /* Priority Code Point */
67#define VLAN_PRIO_SHIFT 13
68#define VLAN_CFI_MASK 0x1000 /* Canonical Format Indicator */
69#define VLAN_TAG_PRESENT VLAN_CFI_MASK
70#define VLAN_VID_MASK 0x0fff /* VLAN Identifier */
67 71
68/* found in socket.c */ 72/* found in socket.c */
69extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); 73extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *));
@@ -81,6 +85,7 @@ struct vlan_group {
81 * the vlan is attached to. 85 * the vlan is attached to.
82 */ 86 */
83 unsigned int nr_vlans; 87 unsigned int nr_vlans;
88 int killall;
84 struct hlist_node hlist; /* linked list */ 89 struct hlist_node hlist; /* linked list */
85 struct net_device **vlan_devices_arrays[VLAN_GROUP_ARRAY_SPLIT_PARTS]; 90 struct net_device **vlan_devices_arrays[VLAN_GROUP_ARRAY_SPLIT_PARTS];
86 struct rcu_head rcu; 91 struct rcu_head rcu;
@@ -105,8 +110,8 @@ static inline void vlan_group_set_device(struct vlan_group *vg,
105 array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN] = dev; 110 array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN] = dev;
106} 111}
107 112
108#define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci) 113#define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci & VLAN_TAG_PRESENT)
109#define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci) 114#define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci & ~VLAN_TAG_PRESENT)
110 115
111#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) 116#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
112extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); 117extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
@@ -115,10 +120,12 @@ extern u16 vlan_dev_vlan_id(const struct net_device *dev);
115extern int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, 120extern int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
116 u16 vlan_tci, int polling); 121 u16 vlan_tci, int polling);
117extern int vlan_hwaccel_do_receive(struct sk_buff *skb); 122extern int vlan_hwaccel_do_receive(struct sk_buff *skb);
118extern int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, 123extern gro_result_t
119 unsigned int vlan_tci, struct sk_buff *skb); 124vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp,
120extern int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp, 125 unsigned int vlan_tci, struct sk_buff *skb);
121 unsigned int vlan_tci); 126extern gro_result_t
127vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp,
128 unsigned int vlan_tci);
122 129
123#else 130#else
124static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev) 131static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev)
@@ -145,17 +152,18 @@ static inline int vlan_hwaccel_do_receive(struct sk_buff *skb)
145 return 0; 152 return 0;
146} 153}
147 154
148static inline int vlan_gro_receive(struct napi_struct *napi, 155static inline gro_result_t
149 struct vlan_group *grp, 156vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp,
150 unsigned int vlan_tci, struct sk_buff *skb) 157 unsigned int vlan_tci, struct sk_buff *skb)
151{ 158{
152 return NET_RX_DROP; 159 return GRO_DROP;
153} 160}
154 161
155static inline int vlan_gro_frags(struct napi_struct *napi, 162static inline gro_result_t
156 struct vlan_group *grp, unsigned int vlan_tci) 163vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp,
164 unsigned int vlan_tci)
157{ 165{
158 return NET_RX_DROP; 166 return GRO_DROP;
159} 167}
160#endif 168#endif
161 169
@@ -231,7 +239,7 @@ static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
231static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb, 239static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb,
232 u16 vlan_tci) 240 u16 vlan_tci)
233{ 241{
234 skb->vlan_tci = vlan_tci; 242 skb->vlan_tci = VLAN_TAG_PRESENT | vlan_tci;
235 return skb; 243 return skb;
236} 244}
237 245
@@ -284,7 +292,7 @@ static inline int __vlan_hwaccel_get_tag(const struct sk_buff *skb,
284 u16 *vlan_tci) 292 u16 *vlan_tci)
285{ 293{
286 if (vlan_tx_tag_present(skb)) { 294 if (vlan_tx_tag_present(skb)) {
287 *vlan_tci = skb->vlan_tci; 295 *vlan_tci = vlan_tx_tag_get(skb);
288 return 0; 296 return 0;
289 } else { 297 } else {
290 *vlan_tci = 0; 298 *vlan_tci = 0;
diff --git a/include/linux/igmp.h b/include/linux/igmp.h
index fe158e0e20e6..724c27e5d173 100644
--- a/include/linux/igmp.h
+++ b/include/linux/igmp.h
@@ -27,8 +27,7 @@
27 * Header in on cable format 27 * Header in on cable format
28 */ 28 */
29 29
30struct igmphdr 30struct igmphdr {
31{
32 __u8 type; 31 __u8 type;
33 __u8 code; /* For newer IGMP */ 32 __u8 code; /* For newer IGMP */
34 __sum16 csum; 33 __sum16 csum;
@@ -151,8 +150,7 @@ static inline struct igmpv3_query *
151extern int sysctl_igmp_max_memberships; 150extern int sysctl_igmp_max_memberships;
152extern int sysctl_igmp_max_msf; 151extern int sysctl_igmp_max_msf;
153 152
154struct ip_sf_socklist 153struct ip_sf_socklist {
155{
156 unsigned int sl_max; 154 unsigned int sl_max;
157 unsigned int sl_count; 155 unsigned int sl_count;
158 __be32 sl_addr[0]; 156 __be32 sl_addr[0];
@@ -167,16 +165,14 @@ struct ip_sf_socklist
167 this list never used in fast path code 165 this list never used in fast path code
168 */ 166 */
169 167
170struct ip_mc_socklist 168struct ip_mc_socklist {
171{
172 struct ip_mc_socklist *next; 169 struct ip_mc_socklist *next;
173 struct ip_mreqn multi; 170 struct ip_mreqn multi;
174 unsigned int sfmode; /* MCAST_{INCLUDE,EXCLUDE} */ 171 unsigned int sfmode; /* MCAST_{INCLUDE,EXCLUDE} */
175 struct ip_sf_socklist *sflist; 172 struct ip_sf_socklist *sflist;
176}; 173};
177 174
178struct ip_sf_list 175struct ip_sf_list {
179{
180 struct ip_sf_list *sf_next; 176 struct ip_sf_list *sf_next;
181 __be32 sf_inaddr; 177 __be32 sf_inaddr;
182 unsigned long sf_count[2]; /* include/exclude counts */ 178 unsigned long sf_count[2]; /* include/exclude counts */
@@ -185,8 +181,7 @@ struct ip_sf_list
185 unsigned char sf_crcount; /* retrans. left to send */ 181 unsigned char sf_crcount; /* retrans. left to send */
186}; 182};
187 183
188struct ip_mc_list 184struct ip_mc_list {
189{
190 struct in_device *interface; 185 struct in_device *interface;
191 __be32 multiaddr; 186 __be32 multiaddr;
192 struct ip_sf_list *sources; 187 struct ip_sf_list *sources;
diff --git a/include/linux/in.h b/include/linux/in.h
index cf196da04ec9..b615649db129 100644
--- a/include/linux/in.h
+++ b/include/linux/in.h
@@ -118,14 +118,12 @@ struct in_addr {
118 118
119/* Request struct for multicast socket ops */ 119/* Request struct for multicast socket ops */
120 120
121struct ip_mreq 121struct ip_mreq {
122{
123 struct in_addr imr_multiaddr; /* IP multicast address of group */ 122 struct in_addr imr_multiaddr; /* IP multicast address of group */
124 struct in_addr imr_interface; /* local IP address of interface */ 123 struct in_addr imr_interface; /* local IP address of interface */
125}; 124};
126 125
127struct ip_mreqn 126struct ip_mreqn {
128{
129 struct in_addr imr_multiaddr; /* IP multicast address of group */ 127 struct in_addr imr_multiaddr; /* IP multicast address of group */
130 struct in_addr imr_address; /* local IP address of interface */ 128 struct in_addr imr_address; /* local IP address of interface */
131 int imr_ifindex; /* Interface index */ 129 int imr_ifindex; /* Interface index */
@@ -149,21 +147,18 @@ struct ip_msfilter {
149 (sizeof(struct ip_msfilter) - sizeof(__u32) \ 147 (sizeof(struct ip_msfilter) - sizeof(__u32) \
150 + (numsrc) * sizeof(__u32)) 148 + (numsrc) * sizeof(__u32))
151 149
152struct group_req 150struct group_req {
153{
154 __u32 gr_interface; /* interface index */ 151 __u32 gr_interface; /* interface index */
155 struct __kernel_sockaddr_storage gr_group; /* group address */ 152 struct __kernel_sockaddr_storage gr_group; /* group address */
156}; 153};
157 154
158struct group_source_req 155struct group_source_req {
159{
160 __u32 gsr_interface; /* interface index */ 156 __u32 gsr_interface; /* interface index */
161 struct __kernel_sockaddr_storage gsr_group; /* group address */ 157 struct __kernel_sockaddr_storage gsr_group; /* group address */
162 struct __kernel_sockaddr_storage gsr_source; /* source address */ 158 struct __kernel_sockaddr_storage gsr_source; /* source address */
163}; 159};
164 160
165struct group_filter 161struct group_filter {
166{
167 __u32 gf_interface; /* interface index */ 162 __u32 gf_interface; /* interface index */
168 struct __kernel_sockaddr_storage gf_group; /* multicast address */ 163 struct __kernel_sockaddr_storage gf_group; /* multicast address */
169 __u32 gf_fmode; /* filter mode */ 164 __u32 gf_fmode; /* filter mode */
@@ -175,8 +170,7 @@ struct group_filter
175 (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \ 170 (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \
176 + (numsrc) * sizeof(struct __kernel_sockaddr_storage)) 171 + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
177 172
178struct in_pktinfo 173struct in_pktinfo {
179{
180 int ipi_ifindex; 174 int ipi_ifindex;
181 struct in_addr ipi_spec_dst; 175 struct in_addr ipi_spec_dst;
182 struct in_addr ipi_addr; 176 struct in_addr ipi_addr;
diff --git a/include/linux/in6.h b/include/linux/in6.h
index 718bf21c5754..dfa29168e6ab 100644
--- a/include/linux/in6.h
+++ b/include/linux/in6.h
@@ -27,10 +27,8 @@
27 * IPv6 address structure 27 * IPv6 address structure
28 */ 28 */
29 29
30struct in6_addr 30struct in6_addr {
31{ 31 union {
32 union
33 {
34 __u8 u6_addr8[16]; 32 __u8 u6_addr8[16];
35 __be16 u6_addr16[8]; 33 __be16 u6_addr16[8];
36 __be32 u6_addr32[4]; 34 __be32 u6_addr32[4];
@@ -75,8 +73,7 @@ struct ipv6_mreq {
75 73
76#define ipv6mr_acaddr ipv6mr_multiaddr 74#define ipv6mr_acaddr ipv6mr_multiaddr
77 75
78struct in6_flowlabel_req 76struct in6_flowlabel_req {
79{
80 struct in6_addr flr_dst; 77 struct in6_addr flr_dst;
81 __be32 flr_label; 78 __be32 flr_label;
82 __u8 flr_action; 79 __u8 flr_action;
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h
index ad27c7da8798..eecfa559bfb4 100644
--- a/include/linux/inetdevice.h
+++ b/include/linux/inetdevice.h
@@ -10,15 +10,13 @@
10#include <linux/timer.h> 10#include <linux/timer.h>
11#include <linux/sysctl.h> 11#include <linux/sysctl.h>
12 12
13struct ipv4_devconf 13struct ipv4_devconf {
14{
15 void *sysctl; 14 void *sysctl;
16 int data[__NET_IPV4_CONF_MAX - 1]; 15 int data[__NET_IPV4_CONF_MAX - 1];
17 DECLARE_BITMAP(state, __NET_IPV4_CONF_MAX - 1); 16 DECLARE_BITMAP(state, __NET_IPV4_CONF_MAX - 1);
18}; 17};
19 18
20struct in_device 19struct in_device {
21{
22 struct net_device *dev; 20 struct net_device *dev;
23 atomic_t refcnt; 21 atomic_t refcnt;
24 int dead; 22 int dead;
@@ -110,8 +108,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev)
110#define IN_DEV_ARP_IGNORE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_IGNORE) 108#define IN_DEV_ARP_IGNORE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_IGNORE)
111#define IN_DEV_ARP_NOTIFY(in_dev) IN_DEV_MAXCONF((in_dev), ARP_NOTIFY) 109#define IN_DEV_ARP_NOTIFY(in_dev) IN_DEV_MAXCONF((in_dev), ARP_NOTIFY)
112 110
113struct in_ifaddr 111struct in_ifaddr {
114{
115 struct in_ifaddr *ifa_next; 112 struct in_ifaddr *ifa_next;
116 struct in_device *ifa_dev; 113 struct in_device *ifa_dev;
117 struct rcu_head rcu_head; 114 struct rcu_head rcu_head;
diff --git a/include/linux/ip_vs.h b/include/linux/ip_vs.h
index 148265e63e8d..dfc170362842 100644
--- a/include/linux/ip_vs.h
+++ b/include/linux/ip_vs.h
@@ -127,8 +127,7 @@ struct ip_vs_dest_user {
127/* 127/*
128 * IPVS statistics object (for user space) 128 * IPVS statistics object (for user space)
129 */ 129 */
130struct ip_vs_stats_user 130struct ip_vs_stats_user {
131{
132 __u32 conns; /* connections scheduled */ 131 __u32 conns; /* connections scheduled */
133 __u32 inpkts; /* incoming packets */ 132 __u32 inpkts; /* incoming packets */
134 __u32 outpkts; /* outgoing packets */ 133 __u32 outpkts; /* outgoing packets */
diff --git a/include/linux/ipc.h b/include/linux/ipc.h
index b8826107b518..3b1594d662b0 100644
--- a/include/linux/ipc.h
+++ b/include/linux/ipc.h
@@ -78,8 +78,6 @@ struct ipc_kludge {
78#define IPCCALL(version,op) ((version)<<16 | (op)) 78#define IPCCALL(version,op) ((version)<<16 | (op))
79 79
80#ifdef __KERNEL__ 80#ifdef __KERNEL__
81
82#include <linux/kref.h>
83#include <linux/spinlock.h> 81#include <linux/spinlock.h>
84 82
85#define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ 83#define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index c662efa68289..e0cc9a7db2b5 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -167,6 +167,7 @@ struct ipv6_devconf {
167#endif 167#endif
168 __s32 disable_ipv6; 168 __s32 disable_ipv6;
169 __s32 accept_dad; 169 __s32 accept_dad;
170 __s32 force_tllao;
170 void *sysctl; 171 void *sysctl;
171}; 172};
172 173
@@ -207,6 +208,7 @@ enum {
207 DEVCONF_MC_FORWARDING, 208 DEVCONF_MC_FORWARDING,
208 DEVCONF_DISABLE_IPV6, 209 DEVCONF_DISABLE_IPV6,
209 DEVCONF_ACCEPT_DAD, 210 DEVCONF_ACCEPT_DAD,
211 DEVCONF_FORCE_TLLAO,
210 DEVCONF_MAX 212 DEVCONF_MAX
211}; 213};
212 214
@@ -503,7 +505,7 @@ static inline struct raw6_sock *raw6_sk(const struct sock *sk)
503 505
504#define INET6_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif)\ 506#define INET6_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif)\
505 (((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \ 507 (((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \
506 ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ 508 ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
507 ((__sk)->sk_family == AF_INET6) && \ 509 ((__sk)->sk_family == AF_INET6) && \
508 ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \ 510 ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \
509 ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \ 511 ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 52695d3dfd0b..f1011f7f3d41 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -464,9 +464,9 @@ struct handle_s
464 */ 464 */
465struct transaction_chp_stats_s { 465struct transaction_chp_stats_s {
466 unsigned long cs_chp_time; 466 unsigned long cs_chp_time;
467 unsigned long cs_forced_to_close; 467 __u32 cs_forced_to_close;
468 unsigned long cs_written; 468 __u32 cs_written;
469 unsigned long cs_dropped; 469 __u32 cs_dropped;
470}; 470};
471 471
472/* The transaction_t type is the guts of the journaling mechanism. It 472/* The transaction_t type is the guts of the journaling mechanism. It
@@ -668,23 +668,16 @@ struct transaction_run_stats_s {
668 unsigned long rs_flushing; 668 unsigned long rs_flushing;
669 unsigned long rs_logging; 669 unsigned long rs_logging;
670 670
671 unsigned long rs_handle_count; 671 __u32 rs_handle_count;
672 unsigned long rs_blocks; 672 __u32 rs_blocks;
673 unsigned long rs_blocks_logged; 673 __u32 rs_blocks_logged;
674}; 674};
675 675
676struct transaction_stats_s { 676struct transaction_stats_s {
677 int ts_type;
678 unsigned long ts_tid; 677 unsigned long ts_tid;
679 union { 678 struct transaction_run_stats_s run;
680 struct transaction_run_stats_s run;
681 struct transaction_chp_stats_s chp;
682 } u;
683}; 679};
684 680
685#define JBD2_STATS_RUN 1
686#define JBD2_STATS_CHECKPOINT 2
687
688static inline unsigned long 681static inline unsigned long
689jbd2_time_diff(unsigned long start, unsigned long end) 682jbd2_time_diff(unsigned long start, unsigned long end)
690{ 683{
@@ -988,12 +981,6 @@ struct journal_s
988 /* 981 /*
989 * Journal statistics 982 * Journal statistics
990 */ 983 */
991 struct transaction_stats_s *j_history;
992 int j_history_max;
993 int j_history_cur;
994 /*
995 * Protect the transactions statistics history
996 */
997 spinlock_t j_history_lock; 984 spinlock_t j_history_lock;
998 struct proc_dir_entry *j_proc_entry; 985 struct proc_dir_entry *j_proc_entry;
999 struct transaction_stats_s j_stats; 986 struct transaction_stats_s j_stats;
diff --git a/include/linux/kref.h b/include/linux/kref.h
index 0cef6badd6fb..b0cb0ebad9e6 100644
--- a/include/linux/kref.h
+++ b/include/linux/kref.h
@@ -16,7 +16,6 @@
16#define _KREF_H_ 16#define _KREF_H_
17 17
18#include <linux/types.h> 18#include <linux/types.h>
19#include <asm/atomic.h>
20 19
21struct kref { 20struct kref {
22 atomic_t refcount; 21 atomic_t refcount;
diff --git a/include/linux/mfd/wm831x/status.h b/include/linux/mfd/wm831x/status.h
new file mode 100644
index 000000000000..6bc090d0e3ac
--- /dev/null
+++ b/include/linux/mfd/wm831x/status.h
@@ -0,0 +1,34 @@
1/*
2 * include/linux/mfd/wm831x/status.h -- Status LEDs for WM831x
3 *
4 * Copyright 2009 Wolfson Microelectronics PLC.
5 *
6 * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 */
14
15#ifndef __MFD_WM831X_STATUS_H__
16#define __MFD_WM831X_STATUS_H__
17
18#define WM831X_LED_SRC_MASK 0xC000 /* LED_SRC - [15:14] */
19#define WM831X_LED_SRC_SHIFT 14 /* LED_SRC - [15:14] */
20#define WM831X_LED_SRC_WIDTH 2 /* LED_SRC - [15:14] */
21#define WM831X_LED_MODE_MASK 0x0300 /* LED_MODE - [9:8] */
22#define WM831X_LED_MODE_SHIFT 8 /* LED_MODE - [9:8] */
23#define WM831X_LED_MODE_WIDTH 2 /* LED_MODE - [9:8] */
24#define WM831X_LED_SEQ_LEN_MASK 0x0030 /* LED_SEQ_LEN - [5:4] */
25#define WM831X_LED_SEQ_LEN_SHIFT 4 /* LED_SEQ_LEN - [5:4] */
26#define WM831X_LED_SEQ_LEN_WIDTH 2 /* LED_SEQ_LEN - [5:4] */
27#define WM831X_LED_DUR_MASK 0x000C /* LED_DUR - [3:2] */
28#define WM831X_LED_DUR_SHIFT 2 /* LED_DUR - [3:2] */
29#define WM831X_LED_DUR_WIDTH 2 /* LED_DUR - [3:2] */
30#define WM831X_LED_DUTY_CYC_MASK 0x0003 /* LED_DUTY_CYC - [1:0] */
31#define WM831X_LED_DUTY_CYC_SHIFT 0 /* LED_DUTY_CYC - [1:0] */
32#define WM831X_LED_DUTY_CYC_WIDTH 2 /* LED_DUTY_CYC - [1:0] */
33
34#endif
diff --git a/include/linux/mm.h b/include/linux/mm.h
index df08551cb0ad..24c395694f4d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -288,7 +288,7 @@ static inline int is_vmalloc_addr(const void *x)
288#ifdef CONFIG_MMU 288#ifdef CONFIG_MMU
289extern int is_vmalloc_or_module_addr(const void *x); 289extern int is_vmalloc_or_module_addr(const void *x);
290#else 290#else
291static int is_vmalloc_or_module_addr(const void *x) 291static inline int is_vmalloc_or_module_addr(const void *x)
292{ 292{
293 return 0; 293 return 0;
294} 294}
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 21d6aa45206a..84a524afb3dc 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -171,7 +171,7 @@ struct vm_area_struct {
171 struct anon_vma *anon_vma; /* Serialized by page_table_lock */ 171 struct anon_vma *anon_vma; /* Serialized by page_table_lock */
172 172
173 /* Function pointers to deal with this struct. */ 173 /* Function pointers to deal with this struct. */
174 struct vm_operations_struct * vm_ops; 174 const struct vm_operations_struct *vm_ops;
175 175
176 /* Information about our backing store: */ 176 /* Information about our backing store: */
177 unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE 177 unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE
diff --git a/include/linux/mroute.h b/include/linux/mroute.h
index 08bc776d05e2..c5f3d53548e2 100644
--- a/include/linux/mroute.h
+++ b/include/linux/mroute.h
@@ -59,20 +59,24 @@ struct vifctl {
59 unsigned char vifc_flags; /* VIFF_ flags */ 59 unsigned char vifc_flags; /* VIFF_ flags */
60 unsigned char vifc_threshold; /* ttl limit */ 60 unsigned char vifc_threshold; /* ttl limit */
61 unsigned int vifc_rate_limit; /* Rate limiter values (NI) */ 61 unsigned int vifc_rate_limit; /* Rate limiter values (NI) */
62 struct in_addr vifc_lcl_addr; /* Our address */ 62 union {
63 struct in_addr vifc_lcl_addr; /* Local interface address */
64 int vifc_lcl_ifindex; /* Local interface index */
65 };
63 struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */ 66 struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */
64}; 67};
65 68
66#define VIFF_TUNNEL 0x1 /* IPIP tunnel */ 69#define VIFF_TUNNEL 0x1 /* IPIP tunnel */
67#define VIFF_SRCRT 0x2 /* NI */ 70#define VIFF_SRCRT 0x2 /* NI */
68#define VIFF_REGISTER 0x4 /* register vif */ 71#define VIFF_REGISTER 0x4 /* register vif */
72#define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of
73 vifc_lcl_addr to find an interface */
69 74
70/* 75/*
71 * Cache manipulation structures for mrouted and PIMd 76 * Cache manipulation structures for mrouted and PIMd
72 */ 77 */
73 78
74struct mfcctl 79struct mfcctl {
75{
76 struct in_addr mfcc_origin; /* Origin of mcast */ 80 struct in_addr mfcc_origin; /* Origin of mcast */
77 struct in_addr mfcc_mcastgrp; /* Group in question */ 81 struct in_addr mfcc_mcastgrp; /* Group in question */
78 vifi_t mfcc_parent; /* Where it arrived */ 82 vifi_t mfcc_parent; /* Where it arrived */
@@ -87,8 +91,7 @@ struct mfcctl
87 * Group count retrieval for mrouted 91 * Group count retrieval for mrouted
88 */ 92 */
89 93
90struct sioc_sg_req 94struct sioc_sg_req {
91{
92 struct in_addr src; 95 struct in_addr src;
93 struct in_addr grp; 96 struct in_addr grp;
94 unsigned long pktcnt; 97 unsigned long pktcnt;
@@ -100,8 +103,7 @@ struct sioc_sg_req
100 * To get vif packet counts 103 * To get vif packet counts
101 */ 104 */
102 105
103struct sioc_vif_req 106struct sioc_vif_req {
104{
105 vifi_t vifi; /* Which iface */ 107 vifi_t vifi; /* Which iface */
106 unsigned long icount; /* In packets */ 108 unsigned long icount; /* In packets */
107 unsigned long ocount; /* Out packets */ 109 unsigned long ocount; /* Out packets */
@@ -114,8 +116,7 @@ struct sioc_vif_req
114 * data. Magically happens to be like an IP packet as per the original 116 * data. Magically happens to be like an IP packet as per the original
115 */ 117 */
116 118
117struct igmpmsg 119struct igmpmsg {
118{
119 __u32 unused1,unused2; 120 __u32 unused1,unused2;
120 unsigned char im_msgtype; /* What is this */ 121 unsigned char im_msgtype; /* What is this */
121 unsigned char im_mbz; /* Must be zero */ 122 unsigned char im_mbz; /* Must be zero */
@@ -176,8 +177,7 @@ static inline int ip_mr_init(void)
176} 177}
177#endif 178#endif
178 179
179struct vif_device 180struct vif_device {
180{
181 struct net_device *dev; /* Device we are using */ 181 struct net_device *dev; /* Device we are using */
182 unsigned long bytes_in,bytes_out; 182 unsigned long bytes_in,bytes_out;
183 unsigned long pkt_in,pkt_out; /* Statistics */ 183 unsigned long pkt_in,pkt_out; /* Statistics */
@@ -190,8 +190,7 @@ struct vif_device
190 190
191#define VIFF_STATIC 0x8000 191#define VIFF_STATIC 0x8000
192 192
193struct mfc_cache 193struct mfc_cache {
194{
195 struct mfc_cache *next; /* Next entry on cache line */ 194 struct mfc_cache *next; /* Next entry on cache line */
196#ifdef CONFIG_NET_NS 195#ifdef CONFIG_NET_NS
197 struct net *mfc_net; 196 struct net *mfc_net;
diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
index b191865a6ca3..2caa1a8e525d 100644
--- a/include/linux/mroute6.h
+++ b/include/linux/mroute6.h
@@ -75,8 +75,7 @@ struct mif6ctl {
75 * Cache manipulation structures for mrouted and PIMd 75 * Cache manipulation structures for mrouted and PIMd
76 */ 76 */
77 77
78struct mf6cctl 78struct mf6cctl {
79{
80 struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */ 79 struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */
81 struct sockaddr_in6 mf6cc_mcastgrp; /* Group in question */ 80 struct sockaddr_in6 mf6cc_mcastgrp; /* Group in question */
82 mifi_t mf6cc_parent; /* Where it arrived */ 81 mifi_t mf6cc_parent; /* Where it arrived */
@@ -87,8 +86,7 @@ struct mf6cctl
87 * Group count retrieval for pim6sd 86 * Group count retrieval for pim6sd
88 */ 87 */
89 88
90struct sioc_sg_req6 89struct sioc_sg_req6 {
91{
92 struct sockaddr_in6 src; 90 struct sockaddr_in6 src;
93 struct sockaddr_in6 grp; 91 struct sockaddr_in6 grp;
94 unsigned long pktcnt; 92 unsigned long pktcnt;
@@ -100,8 +98,7 @@ struct sioc_sg_req6
100 * To get vif packet counts 98 * To get vif packet counts
101 */ 99 */
102 100
103struct sioc_mif_req6 101struct sioc_mif_req6 {
104{
105 mifi_t mifi; /* Which iface */ 102 mifi_t mifi; /* Which iface */
106 unsigned long icount; /* In packets */ 103 unsigned long icount; /* In packets */
107 unsigned long ocount; /* Out packets */ 104 unsigned long ocount; /* Out packets */
@@ -172,8 +169,7 @@ static inline void ip6_mr_cleanup(void)
172} 169}
173#endif 170#endif
174 171
175struct mif_device 172struct mif_device {
176{
177 struct net_device *dev; /* Device we are using */ 173 struct net_device *dev; /* Device we are using */
178 unsigned long bytes_in,bytes_out; 174 unsigned long bytes_in,bytes_out;
179 unsigned long pkt_in,pkt_out; /* Statistics */ 175 unsigned long pkt_in,pkt_out; /* Statistics */
@@ -185,8 +181,7 @@ struct mif_device
185 181
186#define VIFF_STATIC 0x8000 182#define VIFF_STATIC 0x8000
187 183
188struct mfc6_cache 184struct mfc6_cache {
189{
190 struct mfc6_cache *next; /* Next entry on cache line */ 185 struct mfc6_cache *next; /* Next entry on cache line */
191#ifdef CONFIG_NET_NS 186#ifdef CONFIG_NET_NS
192 struct net *mfc6_net; 187 struct net *mfc6_net;
diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
index 12c9de138451..a7003b7a695d 100644
--- a/include/linux/neighbour.h
+++ b/include/linux/neighbour.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/netlink.h> 5#include <linux/netlink.h>
6 6
7struct ndmsg 7struct ndmsg {
8{
9 __u8 ndm_family; 8 __u8 ndm_family;
10 __u8 ndm_pad1; 9 __u8 ndm_pad1;
11 __u16 ndm_pad2; 10 __u16 ndm_pad2;
@@ -15,8 +14,7 @@ struct ndmsg
15 __u8 ndm_type; 14 __u8 ndm_type;
16}; 15};
17 16
18enum 17enum {
19{
20 NDA_UNSPEC, 18 NDA_UNSPEC,
21 NDA_DST, 19 NDA_DST,
22 NDA_LLADDR, 20 NDA_LLADDR,
@@ -56,8 +54,7 @@ enum
56 NUD_PERMANENT is also cannot be deleted by garbage collectors. 54 NUD_PERMANENT is also cannot be deleted by garbage collectors.
57 */ 55 */
58 56
59struct nda_cacheinfo 57struct nda_cacheinfo {
60{
61 __u32 ndm_confirmed; 58 __u32 ndm_confirmed;
62 __u32 ndm_used; 59 __u32 ndm_used;
63 __u32 ndm_updated; 60 __u32 ndm_updated;
@@ -89,8 +86,7 @@ struct nda_cacheinfo
89 * device. 86 * device.
90 ****/ 87 ****/
91 88
92struct ndt_stats 89struct ndt_stats {
93{
94 __u64 ndts_allocs; 90 __u64 ndts_allocs;
95 __u64 ndts_destroys; 91 __u64 ndts_destroys;
96 __u64 ndts_hash_grows; 92 __u64 ndts_hash_grows;
@@ -124,15 +120,13 @@ enum {
124}; 120};
125#define NDTPA_MAX (__NDTPA_MAX - 1) 121#define NDTPA_MAX (__NDTPA_MAX - 1)
126 122
127struct ndtmsg 123struct ndtmsg {
128{
129 __u8 ndtm_family; 124 __u8 ndtm_family;
130 __u8 ndtm_pad1; 125 __u8 ndtm_pad1;
131 __u16 ndtm_pad2; 126 __u16 ndtm_pad2;
132}; 127};
133 128
134struct ndt_config 129struct ndt_config {
135{
136 __u16 ndtc_key_len; 130 __u16 ndtc_key_len;
137 __u16 ndtc_entry_size; 131 __u16 ndtc_entry_size;
138 __u32 ndtc_entries; 132 __u32 ndtc_entries;
diff --git a/include/linux/net.h b/include/linux/net.h
index 529a0931711d..70ee3c310f15 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -41,6 +41,7 @@
41#define SYS_SENDMSG 16 /* sys_sendmsg(2) */ 41#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
42#define SYS_RECVMSG 17 /* sys_recvmsg(2) */ 42#define SYS_RECVMSG 17 /* sys_recvmsg(2) */
43#define SYS_ACCEPT4 18 /* sys_accept4(2) */ 43#define SYS_ACCEPT4 18 /* sys_accept4(2) */
44#define SYS_RECVMMSG 19 /* sys_recvmmsg(2) */
44 45
45typedef enum { 46typedef enum {
46 SS_FREE = 0, /* not allocated */ 47 SS_FREE = 0, /* not allocated */
@@ -198,9 +199,13 @@ struct proto_ops {
198 struct pipe_inode_info *pipe, size_t len, unsigned int flags); 199 struct pipe_inode_info *pipe, size_t len, unsigned int flags);
199}; 200};
200 201
202#define DECLARE_SOCKADDR(type, dst, src) \
203 type dst = ({ __sockaddr_check_size(sizeof(*dst)); (type) src; })
204
201struct net_proto_family { 205struct net_proto_family {
202 int family; 206 int family;
203 int (*create)(struct net *net, struct socket *sock, int protocol); 207 int (*create)(struct net *net, struct socket *sock,
208 int protocol, int kern);
204 struct module *owner; 209 struct module *owner;
205}; 210};
206 211
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 812a5f3c2abe..465add6c43e3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -125,8 +125,7 @@ typedef enum netdev_tx netdev_tx_t;
125 * with byte counters. 125 * with byte counters.
126 */ 126 */
127 127
128struct net_device_stats 128struct net_device_stats {
129{
130 unsigned long rx_packets; /* total packets received */ 129 unsigned long rx_packets; /* total packets received */
131 unsigned long tx_packets; /* total packets transmitted */ 130 unsigned long tx_packets; /* total packets transmitted */
132 unsigned long rx_bytes; /* total bytes received */ 131 unsigned long rx_bytes; /* total bytes received */
@@ -179,8 +178,7 @@ struct neighbour;
179struct neigh_parms; 178struct neigh_parms;
180struct sk_buff; 179struct sk_buff;
181 180
182struct netif_rx_stats 181struct netif_rx_stats {
183{
184 unsigned total; 182 unsigned total;
185 unsigned dropped; 183 unsigned dropped;
186 unsigned time_squeeze; 184 unsigned time_squeeze;
@@ -189,8 +187,7 @@ struct netif_rx_stats
189 187
190DECLARE_PER_CPU(struct netif_rx_stats, netdev_rx_stat); 188DECLARE_PER_CPU(struct netif_rx_stats, netdev_rx_stat);
191 189
192struct dev_addr_list 190struct dev_addr_list {
193{
194 struct dev_addr_list *next; 191 struct dev_addr_list *next;
195 u8 da_addr[MAX_ADDR_LEN]; 192 u8 da_addr[MAX_ADDR_LEN];
196 u8 da_addrlen; 193 u8 da_addrlen;
@@ -227,8 +224,7 @@ struct netdev_hw_addr_list {
227 int count; 224 int count;
228}; 225};
229 226
230struct hh_cache 227struct hh_cache {
231{
232 struct hh_cache *hh_next; /* Next entry */ 228 struct hh_cache *hh_next; /* Next entry */
233 atomic_t hh_refcnt; /* number of users */ 229 atomic_t hh_refcnt; /* number of users */
234/* 230/*
@@ -291,8 +287,7 @@ struct header_ops {
291 * code. 287 * code.
292 */ 288 */
293 289
294enum netdev_state_t 290enum netdev_state_t {
295{
296 __LINK_STATE_START, 291 __LINK_STATE_START,
297 __LINK_STATE_PRESENT, 292 __LINK_STATE_PRESENT,
298 __LINK_STATE_NOCARRIER, 293 __LINK_STATE_NOCARRIER,
@@ -341,20 +336,20 @@ struct napi_struct {
341 struct sk_buff *skb; 336 struct sk_buff *skb;
342}; 337};
343 338
344enum 339enum {
345{
346 NAPI_STATE_SCHED, /* Poll is scheduled */ 340 NAPI_STATE_SCHED, /* Poll is scheduled */
347 NAPI_STATE_DISABLE, /* Disable pending */ 341 NAPI_STATE_DISABLE, /* Disable pending */
348 NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */ 342 NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
349}; 343};
350 344
351enum { 345enum gro_result {
352 GRO_MERGED, 346 GRO_MERGED,
353 GRO_MERGED_FREE, 347 GRO_MERGED_FREE,
354 GRO_HELD, 348 GRO_HELD,
355 GRO_NORMAL, 349 GRO_NORMAL,
356 GRO_DROP, 350 GRO_DROP,
357}; 351};
352typedef enum gro_result gro_result_t;
358 353
359extern void __napi_schedule(struct napi_struct *n); 354extern void __napi_schedule(struct napi_struct *n);
360 355
@@ -457,8 +452,7 @@ static inline void napi_synchronize(const struct napi_struct *n)
457# define napi_synchronize(n) barrier() 452# define napi_synchronize(n) barrier()
458#endif 453#endif
459 454
460enum netdev_queue_state_t 455enum netdev_queue_state_t {
461{
462 __QUEUE_STATE_XOFF, 456 __QUEUE_STATE_XOFF,
463 __QUEUE_STATE_FROZEN, 457 __QUEUE_STATE_FROZEN,
464}; 458};
@@ -635,6 +629,10 @@ struct net_device_ops {
635 unsigned int sgc); 629 unsigned int sgc);
636 int (*ndo_fcoe_ddp_done)(struct net_device *dev, 630 int (*ndo_fcoe_ddp_done)(struct net_device *dev,
637 u16 xid); 631 u16 xid);
632#define NETDEV_FCOE_WWNN 0
633#define NETDEV_FCOE_WWPN 1
634 int (*ndo_fcoe_get_wwn)(struct net_device *dev,
635 u64 *wwn, int type);
638#endif 636#endif
639}; 637};
640 638
@@ -648,8 +646,7 @@ struct net_device_ops {
648 * moves out. 646 * moves out.
649 */ 647 */
650 648
651struct net_device 649struct net_device {
652{
653 650
654 /* 651 /*
655 * This is the first field of the "visible" part of this structure 652 * This is the first field of the "visible" part of this structure
@@ -683,6 +680,7 @@ struct net_device
683 680
684 struct list_head dev_list; 681 struct list_head dev_list;
685 struct list_head napi_list; 682 struct list_head napi_list;
683 struct list_head unreg_list;
686 684
687 /* Net device features */ 685 /* Net device features */
688 unsigned long features; 686 unsigned long features;
@@ -894,8 +892,8 @@ struct net_device
894 892
895 /* class/net/name entry */ 893 /* class/net/name entry */
896 struct device dev; 894 struct device dev;
897 /* space for optional statistics and wireless sysfs groups */ 895 /* space for optional device, statistics, and wireless sysfs groups */
898 const struct attribute_group *sysfs_groups[3]; 896 const struct attribute_group *sysfs_groups[4];
899 897
900 /* rtnetlink link ops */ 898 /* rtnetlink link ops */
901 const struct rtnl_link_ops *rtnl_link_ops; 899 const struct rtnl_link_ops *rtnl_link_ops;
@@ -909,7 +907,7 @@ struct net_device
909 907
910#ifdef CONFIG_DCB 908#ifdef CONFIG_DCB
911 /* Data Center Bridging netlink ops */ 909 /* Data Center Bridging netlink ops */
912 struct dcbnl_rtnl_ops *dcbnl_ops; 910 const struct dcbnl_rtnl_ops *dcbnl_ops;
913#endif 911#endif
914 912
915#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) 913#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
@@ -1075,6 +1073,8 @@ extern rwlock_t dev_base_lock; /* Device list lock */
1075 1073
1076#define for_each_netdev(net, d) \ 1074#define for_each_netdev(net, d) \
1077 list_for_each_entry(d, &(net)->dev_base_head, dev_list) 1075 list_for_each_entry(d, &(net)->dev_base_head, dev_list)
1076#define for_each_netdev_rcu(net, d) \
1077 list_for_each_entry_rcu(d, &(net)->dev_base_head, dev_list)
1078#define for_each_netdev_safe(net, d, n) \ 1078#define for_each_netdev_safe(net, d, n) \
1079 list_for_each_entry_safe(d, n, &(net)->dev_base_head, dev_list) 1079 list_for_each_entry_safe(d, n, &(net)->dev_base_head, dev_list)
1080#define for_each_netdev_continue(net, d) \ 1080#define for_each_netdev_continue(net, d) \
@@ -1109,6 +1109,7 @@ extern void __dev_remove_pack(struct packet_type *pt);
1109extern struct net_device *dev_get_by_flags(struct net *net, unsigned short flags, 1109extern struct net_device *dev_get_by_flags(struct net *net, unsigned short flags,
1110 unsigned short mask); 1110 unsigned short mask);
1111extern struct net_device *dev_get_by_name(struct net *net, const char *name); 1111extern struct net_device *dev_get_by_name(struct net *net, const char *name);
1112extern struct net_device *dev_get_by_name_rcu(struct net *net, const char *name);
1112extern struct net_device *__dev_get_by_name(struct net *net, const char *name); 1113extern struct net_device *__dev_get_by_name(struct net *net, const char *name);
1113extern int dev_alloc_name(struct net_device *dev, const char *name); 1114extern int dev_alloc_name(struct net_device *dev, const char *name);
1114extern int dev_open(struct net_device *dev); 1115extern int dev_open(struct net_device *dev);
@@ -1116,7 +1117,14 @@ extern int dev_close(struct net_device *dev);
1116extern void dev_disable_lro(struct net_device *dev); 1117extern void dev_disable_lro(struct net_device *dev);
1117extern int dev_queue_xmit(struct sk_buff *skb); 1118extern int dev_queue_xmit(struct sk_buff *skb);
1118extern int register_netdevice(struct net_device *dev); 1119extern int register_netdevice(struct net_device *dev);
1119extern void unregister_netdevice(struct net_device *dev); 1120extern void unregister_netdevice_queue(struct net_device *dev,
1121 struct list_head *head);
1122extern void unregister_netdevice_many(struct list_head *head);
1123static inline void unregister_netdevice(struct net_device *dev)
1124{
1125 unregister_netdevice_queue(dev, NULL);
1126}
1127
1120extern void free_netdev(struct net_device *dev); 1128extern void free_netdev(struct net_device *dev);
1121extern void synchronize_net(void); 1129extern void synchronize_net(void);
1122extern int register_netdevice_notifier(struct notifier_block *nb); 1130extern int register_netdevice_notifier(struct notifier_block *nb);
@@ -1127,6 +1135,7 @@ extern void netdev_resync_ops(struct net_device *dev);
1127extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); 1135extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
1128extern struct net_device *dev_get_by_index(struct net *net, int ifindex); 1136extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
1129extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); 1137extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
1138extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
1130extern int dev_restart(struct net_device *dev); 1139extern int dev_restart(struct net_device *dev);
1131#ifdef CONFIG_NETPOLL_TRAP 1140#ifdef CONFIG_NETPOLL_TRAP
1132extern int netpoll_trap(void); 1141extern int netpoll_trap(void);
@@ -1212,8 +1221,7 @@ static inline int unregister_gifconf(unsigned int family)
1212 * Incoming packets are placed on per-cpu queues so that 1221 * Incoming packets are placed on per-cpu queues so that
1213 * no locking is needed. 1222 * no locking is needed.
1214 */ 1223 */
1215struct softnet_data 1224struct softnet_data {
1216{
1217 struct Qdisc *output_queue; 1225 struct Qdisc *output_queue;
1218 struct sk_buff_head input_pkt_queue; 1226 struct sk_buff_head input_pkt_queue;
1219 struct list_head poll_list; 1227 struct list_head poll_list;
@@ -1467,18 +1475,19 @@ extern int netif_rx_ni(struct sk_buff *skb);
1467#define HAVE_NETIF_RECEIVE_SKB 1 1475#define HAVE_NETIF_RECEIVE_SKB 1
1468extern int netif_receive_skb(struct sk_buff *skb); 1476extern int netif_receive_skb(struct sk_buff *skb);
1469extern void napi_gro_flush(struct napi_struct *napi); 1477extern void napi_gro_flush(struct napi_struct *napi);
1470extern int dev_gro_receive(struct napi_struct *napi, 1478extern gro_result_t dev_gro_receive(struct napi_struct *napi,
1471 struct sk_buff *skb); 1479 struct sk_buff *skb);
1472extern int napi_skb_finish(int ret, struct sk_buff *skb); 1480extern gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb);
1473extern int napi_gro_receive(struct napi_struct *napi, 1481extern gro_result_t napi_gro_receive(struct napi_struct *napi,
1474 struct sk_buff *skb); 1482 struct sk_buff *skb);
1475extern void napi_reuse_skb(struct napi_struct *napi, 1483extern void napi_reuse_skb(struct napi_struct *napi,
1476 struct sk_buff *skb); 1484 struct sk_buff *skb);
1477extern struct sk_buff * napi_get_frags(struct napi_struct *napi); 1485extern struct sk_buff * napi_get_frags(struct napi_struct *napi);
1478extern int napi_frags_finish(struct napi_struct *napi, 1486extern gro_result_t napi_frags_finish(struct napi_struct *napi,
1479 struct sk_buff *skb, int ret); 1487 struct sk_buff *skb,
1488 gro_result_t ret);
1480extern struct sk_buff * napi_frags_skb(struct napi_struct *napi); 1489extern struct sk_buff * napi_frags_skb(struct napi_struct *napi);
1481extern int napi_gro_frags(struct napi_struct *napi); 1490extern gro_result_t napi_gro_frags(struct napi_struct *napi);
1482 1491
1483static inline void napi_free_frags(struct napi_struct *napi) 1492static inline void napi_free_frags(struct napi_struct *napi)
1484{ 1493{
@@ -1609,7 +1618,8 @@ static inline int netif_dormant(const struct net_device *dev)
1609 * 1618 *
1610 * Check if carrier is operational 1619 * Check if carrier is operational
1611 */ 1620 */
1612static inline int netif_oper_up(const struct net_device *dev) { 1621static inline int netif_oper_up(const struct net_device *dev)
1622{
1613 return (dev->operstate == IF_OPER_UP || 1623 return (dev->operstate == IF_OPER_UP ||
1614 dev->operstate == IF_OPER_UNKNOWN /* backward compat */); 1624 dev->operstate == IF_OPER_UNKNOWN /* backward compat */);
1615} 1625}
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 6132b5e6d9d3..48c54960773c 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -93,8 +93,7 @@ typedef unsigned int nf_hookfn(unsigned int hooknum,
93 const struct net_device *out, 93 const struct net_device *out,
94 int (*okfn)(struct sk_buff *)); 94 int (*okfn)(struct sk_buff *));
95 95
96struct nf_hook_ops 96struct nf_hook_ops {
97{
98 struct list_head list; 97 struct list_head list;
99 98
100 /* User fills in from here down. */ 99 /* User fills in from here down. */
@@ -106,8 +105,7 @@ struct nf_hook_ops
106 int priority; 105 int priority;
107}; 106};
108 107
109struct nf_sockopt_ops 108struct nf_sockopt_ops {
110{
111 struct list_head list; 109 struct list_head list;
112 110
113 u_int8_t pf; 111 u_int8_t pf;
diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h
index a8248ee422b7..a374787ed9b0 100644
--- a/include/linux/netfilter/nf_conntrack_common.h
+++ b/include/linux/netfilter/nf_conntrack_common.h
@@ -3,8 +3,7 @@
3/* Connection state tracking for netfilter. This is separated from, 3/* Connection state tracking for netfilter. This is separated from,
4 but required by, the NAT layer; it can also be used by an iptables 4 but required by, the NAT layer; it can also be used by an iptables
5 extension. */ 5 extension. */
6enum ip_conntrack_info 6enum ip_conntrack_info {
7{
8 /* Part of an established connection (either direction). */ 7 /* Part of an established connection (either direction). */
9 IP_CT_ESTABLISHED, 8 IP_CT_ESTABLISHED,
10 9
@@ -76,8 +75,7 @@ enum ip_conntrack_status {
76}; 75};
77 76
78#ifdef __KERNEL__ 77#ifdef __KERNEL__
79struct ip_conntrack_stat 78struct ip_conntrack_stat {
80{
81 unsigned int searched; 79 unsigned int searched;
82 unsigned int found; 80 unsigned int found;
83 unsigned int new; 81 unsigned int new;
diff --git a/include/linux/netfilter/nf_conntrack_ftp.h b/include/linux/netfilter/nf_conntrack_ftp.h
index 47727d7546ea..3e3aa08980c3 100644
--- a/include/linux/netfilter/nf_conntrack_ftp.h
+++ b/include/linux/netfilter/nf_conntrack_ftp.h
@@ -3,8 +3,7 @@
3/* FTP tracking. */ 3/* FTP tracking. */
4 4
5/* This enum is exposed to userspace */ 5/* This enum is exposed to userspace */
6enum nf_ct_ftp_type 6enum nf_ct_ftp_type {
7{
8 /* PORT command from client */ 7 /* PORT command from client */
9 NF_CT_FTP_PORT, 8 NF_CT_FTP_PORT,
10 /* PASV response from server */ 9 /* PASV response from server */
diff --git a/include/linux/netfilter/nf_conntrack_sctp.h b/include/linux/netfilter/nf_conntrack_sctp.h
index 768f78c4ac53..ceeefe6681b5 100644
--- a/include/linux/netfilter/nf_conntrack_sctp.h
+++ b/include/linux/netfilter/nf_conntrack_sctp.h
@@ -16,8 +16,7 @@ enum sctp_conntrack {
16 SCTP_CONNTRACK_MAX 16 SCTP_CONNTRACK_MAX
17}; 17};
18 18
19struct ip_ct_sctp 19struct ip_ct_sctp {
20{
21 enum sctp_conntrack state; 20 enum sctp_conntrack state;
22 21
23 __be32 vtag[IP_CT_DIR_MAX]; 22 __be32 vtag[IP_CT_DIR_MAX];
diff --git a/include/linux/netfilter/nf_conntrack_tcp.h b/include/linux/netfilter/nf_conntrack_tcp.h
index 4352feed2377..f6d97f64d7a0 100644
--- a/include/linux/netfilter/nf_conntrack_tcp.h
+++ b/include/linux/netfilter/nf_conntrack_tcp.h
@@ -55,8 +55,7 @@ struct ip_ct_tcp_state {
55 u_int8_t flags; /* per direction options */ 55 u_int8_t flags; /* per direction options */
56}; 56};
57 57
58struct ip_ct_tcp 58struct ip_ct_tcp {
59{
60 struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */ 59 struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */
61 u_int8_t state; /* state of the connection (enum tcp_conntrack) */ 60 u_int8_t state; /* state of the connection (enum tcp_conntrack) */
62 /* For detecting stale connections */ 61 /* For detecting stale connections */
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
index 9f00da287f2c..49d321f3ccd2 100644
--- a/include/linux/netfilter/nfnetlink.h
+++ b/include/linux/netfilter/nfnetlink.h
@@ -55,8 +55,7 @@ struct nfgenmsg {
55#include <linux/capability.h> 55#include <linux/capability.h>
56#include <net/netlink.h> 56#include <net/netlink.h>
57 57
58struct nfnl_callback 58struct nfnl_callback {
59{
60 int (*call)(struct sock *nl, struct sk_buff *skb, 59 int (*call)(struct sock *nl, struct sk_buff *skb,
61 const struct nlmsghdr *nlh, 60 const struct nlmsghdr *nlh,
62 const struct nlattr * const cda[]); 61 const struct nlattr * const cda[]);
@@ -64,8 +63,7 @@ struct nfnl_callback
64 const u_int16_t attr_count; /* number of nlattr's */ 63 const u_int16_t attr_count; /* number of nlattr's */
65}; 64};
66 65
67struct nfnetlink_subsystem 66struct nfnetlink_subsystem {
68{
69 const char *name; 67 const char *name;
70 __u8 subsys_id; /* nfnetlink subsystem ID */ 68 __u8 subsys_id; /* nfnetlink subsystem ID */
71 __u8 cb_count; /* number of callbacks */ 69 __u8 cb_count; /* number of callbacks */
diff --git a/include/linux/netfilter/nfnetlink_compat.h b/include/linux/netfilter/nfnetlink_compat.h
index eda55cabceec..ffb95036bbd4 100644
--- a/include/linux/netfilter/nfnetlink_compat.h
+++ b/include/linux/netfilter/nfnetlink_compat.h
@@ -21,8 +21,7 @@
21 * ! nfnetlink use the same attributes methods. - J. Schulist. 21 * ! nfnetlink use the same attributes methods. - J. Schulist.
22 */ 22 */
23 23
24struct nfattr 24struct nfattr {
25{
26 __u16 nfa_len; 25 __u16 nfa_len;
27 __u16 nfa_type; /* we use 15 bits for the type, and the highest 26 __u16 nfa_type; /* we use 15 bits for the type, and the highest
28 * bit to indicate whether the payload is nested */ 27 * bit to indicate whether the payload is nested */
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index 812cb153cabb..378f27ae7772 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -6,8 +6,7 @@
6#define XT_FUNCTION_MAXNAMELEN 30 6#define XT_FUNCTION_MAXNAMELEN 30
7#define XT_TABLE_MAXNAMELEN 32 7#define XT_TABLE_MAXNAMELEN 32
8 8
9struct xt_entry_match 9struct xt_entry_match {
10{
11 union { 10 union {
12 struct { 11 struct {
13 __u16 match_size; 12 __u16 match_size;
@@ -31,8 +30,7 @@ struct xt_entry_match
31 unsigned char data[0]; 30 unsigned char data[0];
32}; 31};
33 32
34struct xt_entry_target 33struct xt_entry_target {
35{
36 union { 34 union {
37 struct { 35 struct {
38 __u16 target_size; 36 __u16 target_size;
@@ -64,16 +62,14 @@ struct xt_entry_target
64 }, \ 62 }, \
65} 63}
66 64
67struct xt_standard_target 65struct xt_standard_target {
68{
69 struct xt_entry_target target; 66 struct xt_entry_target target;
70 int verdict; 67 int verdict;
71}; 68};
72 69
73/* The argument to IPT_SO_GET_REVISION_*. Returns highest revision 70/* The argument to IPT_SO_GET_REVISION_*. Returns highest revision
74 * kernel supports, if >= revision. */ 71 * kernel supports, if >= revision. */
75struct xt_get_revision 72struct xt_get_revision {
76{
77 char name[XT_FUNCTION_MAXNAMELEN-1]; 73 char name[XT_FUNCTION_MAXNAMELEN-1];
78 74
79 __u8 revision; 75 __u8 revision;
@@ -90,8 +86,7 @@ struct xt_get_revision
90 * ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my 86 * ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my
91 * personal pleasure to remove it -HW 87 * personal pleasure to remove it -HW
92 */ 88 */
93struct _xt_align 89struct _xt_align {
94{
95 __u8 u8; 90 __u8 u8;
96 __u16 u16; 91 __u16 u16;
97 __u32 u32; 92 __u32 u32;
@@ -109,14 +104,12 @@ struct _xt_align
109#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) 104#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0)
110#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) 105#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0)
111 106
112struct xt_counters 107struct xt_counters {
113{
114 __u64 pcnt, bcnt; /* Packet and byte counters */ 108 __u64 pcnt, bcnt; /* Packet and byte counters */
115}; 109};
116 110
117/* The argument to IPT_SO_ADD_COUNTERS. */ 111/* The argument to IPT_SO_ADD_COUNTERS. */
118struct xt_counters_info 112struct xt_counters_info {
119{
120 /* Which table. */ 113 /* Which table. */
121 char name[XT_TABLE_MAXNAMELEN]; 114 char name[XT_TABLE_MAXNAMELEN];
122 115
@@ -269,8 +262,7 @@ struct xt_tgdtor_param {
269 u_int8_t family; 262 u_int8_t family;
270}; 263};
271 264
272struct xt_match 265struct xt_match {
273{
274 struct list_head list; 266 struct list_head list;
275 267
276 const char name[XT_FUNCTION_MAXNAMELEN-1]; 268 const char name[XT_FUNCTION_MAXNAMELEN-1];
@@ -310,8 +302,7 @@ struct xt_match
310}; 302};
311 303
312/* Registration hooks for targets. */ 304/* Registration hooks for targets. */
313struct xt_target 305struct xt_target {
314{
315 struct list_head list; 306 struct list_head list;
316 307
317 const char name[XT_FUNCTION_MAXNAMELEN-1]; 308 const char name[XT_FUNCTION_MAXNAMELEN-1];
@@ -349,8 +340,7 @@ struct xt_target
349}; 340};
350 341
351/* Furniture shopping... */ 342/* Furniture shopping... */
352struct xt_table 343struct xt_table {
353{
354 struct list_head list; 344 struct list_head list;
355 345
356 /* What hooks you will enter on */ 346 /* What hooks you will enter on */
@@ -371,8 +361,7 @@ struct xt_table
371#include <linux/netfilter_ipv4.h> 361#include <linux/netfilter_ipv4.h>
372 362
373/* The table itself */ 363/* The table itself */
374struct xt_table_info 364struct xt_table_info {
375{
376 /* Size per table */ 365 /* Size per table */
377 unsigned int size; 366 unsigned int size;
378 /* Number of entries: FIXME. --RR */ 367 /* Number of entries: FIXME. --RR */
@@ -528,8 +517,7 @@ static inline unsigned long ifname_compare_aligned(const char *_a,
528#ifdef CONFIG_COMPAT 517#ifdef CONFIG_COMPAT
529#include <net/compat.h> 518#include <net/compat.h>
530 519
531struct compat_xt_entry_match 520struct compat_xt_entry_match {
532{
533 union { 521 union {
534 struct { 522 struct {
535 u_int16_t match_size; 523 u_int16_t match_size;
@@ -545,8 +533,7 @@ struct compat_xt_entry_match
545 unsigned char data[0]; 533 unsigned char data[0];
546}; 534};
547 535
548struct compat_xt_entry_target 536struct compat_xt_entry_target {
549{
550 union { 537 union {
551 struct { 538 struct {
552 u_int16_t target_size; 539 u_int16_t target_size;
@@ -566,8 +553,7 @@ struct compat_xt_entry_target
566 * need to change whole approach in order to calculate align as function of 553 * need to change whole approach in order to calculate align as function of
567 * current task alignment */ 554 * current task alignment */
568 555
569struct compat_xt_counters 556struct compat_xt_counters {
570{
571#if defined(CONFIG_X86_64) || defined(CONFIG_IA64) 557#if defined(CONFIG_X86_64) || defined(CONFIG_IA64)
572 u_int32_t cnt[4]; 558 u_int32_t cnt[4];
573#else 559#else
@@ -575,8 +561,7 @@ struct compat_xt_counters
575#endif 561#endif
576}; 562};
577 563
578struct compat_xt_counters_info 564struct compat_xt_counters_info {
579{
580 char name[XT_TABLE_MAXNAMELEN]; 565 char name[XT_TABLE_MAXNAMELEN];
581 compat_uint_t num_counters; 566 compat_uint_t num_counters;
582 struct compat_xt_counters counters[0]; 567 struct compat_xt_counters counters[0];
diff --git a/include/linux/netfilter/xt_connbytes.h b/include/linux/netfilter/xt_connbytes.h
index 52bd6153b996..92fcbb0d193e 100644
--- a/include/linux/netfilter/xt_connbytes.h
+++ b/include/linux/netfilter/xt_connbytes.h
@@ -15,8 +15,7 @@ enum xt_connbytes_direction {
15 XT_CONNBYTES_DIR_BOTH, 15 XT_CONNBYTES_DIR_BOTH,
16}; 16};
17 17
18struct xt_connbytes_info 18struct xt_connbytes_info {
19{
20 struct { 19 struct {
21 aligned_u64 from; /* count to be matched */ 20 aligned_u64 from; /* count to be matched */
22 aligned_u64 to; /* count to be matched */ 21 aligned_u64 to; /* count to be matched */
diff --git a/include/linux/netfilter/xt_esp.h b/include/linux/netfilter/xt_esp.h
index ef6fa4747d0a..ee6882408000 100644
--- a/include/linux/netfilter/xt_esp.h
+++ b/include/linux/netfilter/xt_esp.h
@@ -3,8 +3,7 @@
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6struct xt_esp 6struct xt_esp {
7{
8 __u32 spis[2]; /* Security Parameter Index */ 7 __u32 spis[2]; /* Security Parameter Index */
9 __u8 invflags; /* Inverse flags */ 8 __u8 invflags; /* Inverse flags */
10}; 9};
diff --git a/include/linux/netfilter/xt_multiport.h b/include/linux/netfilter/xt_multiport.h
index 185db499fcbc..5b7e72dfffc5 100644
--- a/include/linux/netfilter/xt_multiport.h
+++ b/include/linux/netfilter/xt_multiport.h
@@ -3,8 +3,7 @@
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6enum xt_multiport_flags 6enum xt_multiport_flags {
7{
8 XT_MULTIPORT_SOURCE, 7 XT_MULTIPORT_SOURCE,
9 XT_MULTIPORT_DESTINATION, 8 XT_MULTIPORT_DESTINATION,
10 XT_MULTIPORT_EITHER 9 XT_MULTIPORT_EITHER
@@ -13,15 +12,13 @@ enum xt_multiport_flags
13#define XT_MULTI_PORTS 15 12#define XT_MULTI_PORTS 15
14 13
15/* Must fit inside union xt_matchinfo: 16 bytes */ 14/* Must fit inside union xt_matchinfo: 16 bytes */
16struct xt_multiport 15struct xt_multiport {
17{
18 __u8 flags; /* Type of comparison */ 16 __u8 flags; /* Type of comparison */
19 __u8 count; /* Number of ports */ 17 __u8 count; /* Number of ports */
20 __u16 ports[XT_MULTI_PORTS]; /* Ports */ 18 __u16 ports[XT_MULTI_PORTS]; /* Ports */
21}; 19};
22 20
23struct xt_multiport_v1 21struct xt_multiport_v1 {
24{
25 __u8 flags; /* Type of comparison */ 22 __u8 flags; /* Type of comparison */
26 __u8 count; /* Number of ports */ 23 __u8 count; /* Number of ports */
27 __u16 ports[XT_MULTI_PORTS]; /* Ports */ 24 __u16 ports[XT_MULTI_PORTS]; /* Ports */
diff --git a/include/linux/netfilter/xt_policy.h b/include/linux/netfilter/xt_policy.h
index 7bb64e7c853d..be8ead05c316 100644
--- a/include/linux/netfilter/xt_policy.h
+++ b/include/linux/netfilter/xt_policy.h
@@ -5,22 +5,19 @@
5 5
6#define XT_POLICY_MAX_ELEM 4 6#define XT_POLICY_MAX_ELEM 4
7 7
8enum xt_policy_flags 8enum xt_policy_flags {
9{
10 XT_POLICY_MATCH_IN = 0x1, 9 XT_POLICY_MATCH_IN = 0x1,
11 XT_POLICY_MATCH_OUT = 0x2, 10 XT_POLICY_MATCH_OUT = 0x2,
12 XT_POLICY_MATCH_NONE = 0x4, 11 XT_POLICY_MATCH_NONE = 0x4,
13 XT_POLICY_MATCH_STRICT = 0x8, 12 XT_POLICY_MATCH_STRICT = 0x8,
14}; 13};
15 14
16enum xt_policy_modes 15enum xt_policy_modes {
17{
18 XT_POLICY_MODE_TRANSPORT, 16 XT_POLICY_MODE_TRANSPORT,
19 XT_POLICY_MODE_TUNNEL 17 XT_POLICY_MODE_TUNNEL
20}; 18};
21 19
22struct xt_policy_spec 20struct xt_policy_spec {
23{
24 __u8 saddr:1, 21 __u8 saddr:1,
25 daddr:1, 22 daddr:1,
26 proto:1, 23 proto:1,
@@ -30,15 +27,13 @@ struct xt_policy_spec
30}; 27};
31 28
32#ifndef __KERNEL__ 29#ifndef __KERNEL__
33union xt_policy_addr 30union xt_policy_addr {
34{
35 struct in_addr a4; 31 struct in_addr a4;
36 struct in6_addr a6; 32 struct in6_addr a6;
37}; 33};
38#endif 34#endif
39 35
40struct xt_policy_elem 36struct xt_policy_elem {
41{
42 union { 37 union {
43#ifdef __KERNEL__ 38#ifdef __KERNEL__
44 struct { 39 struct {
@@ -65,8 +60,7 @@ struct xt_policy_elem
65 struct xt_policy_spec invert; 60 struct xt_policy_spec invert;
66}; 61};
67 62
68struct xt_policy_info 63struct xt_policy_info {
69{
70 struct xt_policy_elem pol[XT_POLICY_MAX_ELEM]; 64 struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
71 __u16 flags; 65 __u16 flags;
72 __u16 len; 66 __u16 len;
diff --git a/include/linux/netfilter/xt_state.h b/include/linux/netfilter/xt_state.h
index c06f32edee07..7b32de886613 100644
--- a/include/linux/netfilter/xt_state.h
+++ b/include/linux/netfilter/xt_state.h
@@ -6,8 +6,7 @@
6 6
7#define XT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1)) 7#define XT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1))
8 8
9struct xt_state_info 9struct xt_state_info {
10{
11 unsigned int statemask; 10 unsigned int statemask;
12}; 11};
13#endif /*_XT_STATE_H*/ 12#endif /*_XT_STATE_H*/
diff --git a/include/linux/netfilter/xt_string.h b/include/linux/netfilter/xt_string.h
index ecbb95fc89ed..235347c02eab 100644
--- a/include/linux/netfilter/xt_string.h
+++ b/include/linux/netfilter/xt_string.h
@@ -11,8 +11,7 @@ enum {
11 XT_STRING_FLAG_IGNORECASE = 0x02 11 XT_STRING_FLAG_IGNORECASE = 0x02
12}; 12};
13 13
14struct xt_string_info 14struct xt_string_info {
15{
16 __u16 from_offset; 15 __u16 from_offset;
17 __u16 to_offset; 16 __u16 to_offset;
18 char algo[XT_STRING_MAX_ALGO_NAME_SIZE]; 17 char algo[XT_STRING_MAX_ALGO_NAME_SIZE];
diff --git a/include/linux/netfilter/xt_tcpudp.h b/include/linux/netfilter/xt_tcpudp.h
index a490a0bc1d29..38aa7b399021 100644
--- a/include/linux/netfilter/xt_tcpudp.h
+++ b/include/linux/netfilter/xt_tcpudp.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5 5
6/* TCP matching stuff */ 6/* TCP matching stuff */
7struct xt_tcp 7struct xt_tcp {
8{
9 __u16 spts[2]; /* Source port range. */ 8 __u16 spts[2]; /* Source port range. */
10 __u16 dpts[2]; /* Destination port range. */ 9 __u16 dpts[2]; /* Destination port range. */
11 __u8 option; /* TCP Option iff non-zero*/ 10 __u8 option; /* TCP Option iff non-zero*/
@@ -22,8 +21,7 @@ struct xt_tcp
22#define XT_TCP_INV_MASK 0x0F /* All possible flags. */ 21#define XT_TCP_INV_MASK 0x0F /* All possible flags. */
23 22
24/* UDP matching stuff */ 23/* UDP matching stuff */
25struct xt_udp 24struct xt_udp {
26{
27 __u16 spts[2]; /* Source port range. */ 25 __u16 spts[2]; /* Source port range. */
28 __u16 dpts[2]; /* Destination port range. */ 26 __u16 dpts[2]; /* Destination port range. */
29 __u8 invflags; /* Inverse flags */ 27 __u8 invflags; /* Inverse flags */
diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
index 6fe3e6aa10db..f2336523a9df 100644
--- a/include/linux/netfilter_arp/arp_tables.h
+++ b/include/linux/netfilter_arp/arp_tables.h
@@ -132,8 +132,7 @@ struct arpt_entry
132#define ARPT_RETURN XT_RETURN 132#define ARPT_RETURN XT_RETURN
133 133
134/* The argument to ARPT_SO_GET_INFO */ 134/* The argument to ARPT_SO_GET_INFO */
135struct arpt_getinfo 135struct arpt_getinfo {
136{
137 /* Which table: caller fills this in. */ 136 /* Which table: caller fills this in. */
138 char name[ARPT_TABLE_MAXNAMELEN]; 137 char name[ARPT_TABLE_MAXNAMELEN];
139 138
@@ -155,8 +154,7 @@ struct arpt_getinfo
155}; 154};
156 155
157/* The argument to ARPT_SO_SET_REPLACE. */ 156/* The argument to ARPT_SO_SET_REPLACE. */
158struct arpt_replace 157struct arpt_replace {
159{
160 /* Which table. */ 158 /* Which table. */
161 char name[ARPT_TABLE_MAXNAMELEN]; 159 char name[ARPT_TABLE_MAXNAMELEN];
162 160
@@ -191,8 +189,7 @@ struct arpt_replace
191#define arpt_counters xt_counters 189#define arpt_counters xt_counters
192 190
193/* The argument to ARPT_SO_GET_ENTRIES. */ 191/* The argument to ARPT_SO_GET_ENTRIES. */
194struct arpt_get_entries 192struct arpt_get_entries {
195{
196 /* Which table: user fills this in. */ 193 /* Which table: user fills this in. */
197 char name[ARPT_TABLE_MAXNAMELEN]; 194 char name[ARPT_TABLE_MAXNAMELEN];
198 195
@@ -224,20 +221,17 @@ static __inline__ struct arpt_entry_target *arpt_get_target(struct arpt_entry *e
224#ifdef __KERNEL__ 221#ifdef __KERNEL__
225 222
226/* Standard entry. */ 223/* Standard entry. */
227struct arpt_standard 224struct arpt_standard {
228{
229 struct arpt_entry entry; 225 struct arpt_entry entry;
230 struct arpt_standard_target target; 226 struct arpt_standard_target target;
231}; 227};
232 228
233struct arpt_error_target 229struct arpt_error_target {
234{
235 struct arpt_entry_target target; 230 struct arpt_entry_target target;
236 char errorname[ARPT_FUNCTION_MAXNAMELEN]; 231 char errorname[ARPT_FUNCTION_MAXNAMELEN];
237}; 232};
238 233
239struct arpt_error 234struct arpt_error {
240{
241 struct arpt_entry entry; 235 struct arpt_entry entry;
242 struct arpt_error_target target; 236 struct arpt_error_target target;
243}; 237};
@@ -279,8 +273,7 @@ extern unsigned int arpt_do_table(struct sk_buff *skb,
279#ifdef CONFIG_COMPAT 273#ifdef CONFIG_COMPAT
280#include <net/compat.h> 274#include <net/compat.h>
281 275
282struct compat_arpt_entry 276struct compat_arpt_entry {
283{
284 struct arpt_arp arp; 277 struct arpt_arp arp;
285 u_int16_t target_offset; 278 u_int16_t target_offset;
286 u_int16_t next_offset; 279 u_int16_t next_offset;
diff --git a/include/linux/netfilter_bridge/ebt_802_3.h b/include/linux/netfilter_bridge/ebt_802_3.h
index a11b0c2017fd..c73ef0b18bdc 100644
--- a/include/linux/netfilter_bridge/ebt_802_3.h
+++ b/include/linux/netfilter_bridge/ebt_802_3.h
@@ -58,8 +58,7 @@ static inline struct ebt_802_3_hdr *ebt_802_3_hdr(const struct sk_buff *skb)
58} 58}
59#endif 59#endif
60 60
61struct ebt_802_3_info 61struct ebt_802_3_info {
62{
63 uint8_t sap; 62 uint8_t sap;
64 __be16 type; 63 __be16 type;
65 uint8_t bitmask; 64 uint8_t bitmask;
diff --git a/include/linux/netfilter_bridge/ebt_among.h b/include/linux/netfilter_bridge/ebt_among.h
index 7654069233ca..0009558609a7 100644
--- a/include/linux/netfilter_bridge/ebt_among.h
+++ b/include/linux/netfilter_bridge/ebt_among.h
@@ -29,14 +29,12 @@
29 * Yes, it is a memory overhead, but in 2003 AD, who cares? 29 * Yes, it is a memory overhead, but in 2003 AD, who cares?
30 */ 30 */
31 31
32struct ebt_mac_wormhash_tuple 32struct ebt_mac_wormhash_tuple {
33{
34 uint32_t cmp[2]; 33 uint32_t cmp[2];
35 __be32 ip; 34 __be32 ip;
36}; 35};
37 36
38struct ebt_mac_wormhash 37struct ebt_mac_wormhash {
39{
40 int table[257]; 38 int table[257];
41 int poolsize; 39 int poolsize;
42 struct ebt_mac_wormhash_tuple pool[0]; 40 struct ebt_mac_wormhash_tuple pool[0];
@@ -45,8 +43,7 @@ struct ebt_mac_wormhash
45#define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \ 43#define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \
46 + (x)->poolsize * sizeof(struct ebt_mac_wormhash_tuple) : 0) 44 + (x)->poolsize * sizeof(struct ebt_mac_wormhash_tuple) : 0)
47 45
48struct ebt_among_info 46struct ebt_among_info {
49{
50 int wh_dst_ofs; 47 int wh_dst_ofs;
51 int wh_src_ofs; 48 int wh_src_ofs;
52 int bitmask; 49 int bitmask;
diff --git a/include/linux/netfilter_bridge/ebt_arpreply.h b/include/linux/netfilter_bridge/ebt_arpreply.h
index 96a8339960e0..7e77896e1fbf 100644
--- a/include/linux/netfilter_bridge/ebt_arpreply.h
+++ b/include/linux/netfilter_bridge/ebt_arpreply.h
@@ -1,8 +1,7 @@
1#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H 1#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
2#define __LINUX_BRIDGE_EBT_ARPREPLY_H 2#define __LINUX_BRIDGE_EBT_ARPREPLY_H
3 3
4struct ebt_arpreply_info 4struct ebt_arpreply_info {
5{
6 unsigned char mac[ETH_ALEN]; 5 unsigned char mac[ETH_ALEN];
7 int target; 6 int target;
8}; 7};
diff --git a/include/linux/netfilter_bridge/ebt_ip.h b/include/linux/netfilter_bridge/ebt_ip.h
index d6847475bf2e..6a708fb92241 100644
--- a/include/linux/netfilter_bridge/ebt_ip.h
+++ b/include/linux/netfilter_bridge/ebt_ip.h
@@ -26,8 +26,7 @@
26#define EBT_IP_MATCH "ip" 26#define EBT_IP_MATCH "ip"
27 27
28/* the same values are used for the invflags */ 28/* the same values are used for the invflags */
29struct ebt_ip_info 29struct ebt_ip_info {
30{
31 __be32 saddr; 30 __be32 saddr;
32 __be32 daddr; 31 __be32 daddr;
33 __be32 smsk; 32 __be32 smsk;
diff --git a/include/linux/netfilter_bridge/ebt_ip6.h b/include/linux/netfilter_bridge/ebt_ip6.h
index 2273c3ae33ca..e5de98701519 100644
--- a/include/linux/netfilter_bridge/ebt_ip6.h
+++ b/include/linux/netfilter_bridge/ebt_ip6.h
@@ -23,8 +23,7 @@
23#define EBT_IP6_MATCH "ip6" 23#define EBT_IP6_MATCH "ip6"
24 24
25/* the same values are used for the invflags */ 25/* the same values are used for the invflags */
26struct ebt_ip6_info 26struct ebt_ip6_info {
27{
28 struct in6_addr saddr; 27 struct in6_addr saddr;
29 struct in6_addr daddr; 28 struct in6_addr daddr;
30 struct in6_addr smsk; 29 struct in6_addr smsk;
diff --git a/include/linux/netfilter_bridge/ebt_limit.h b/include/linux/netfilter_bridge/ebt_limit.h
index d8b65000afe4..4bf76b751676 100644
--- a/include/linux/netfilter_bridge/ebt_limit.h
+++ b/include/linux/netfilter_bridge/ebt_limit.h
@@ -9,8 +9,7 @@
9/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 9/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
10 seconds, or one every 59 hours. */ 10 seconds, or one every 59 hours. */
11 11
12struct ebt_limit_info 12struct ebt_limit_info {
13{
14 u_int32_t avg; /* Average secs between packets * scale */ 13 u_int32_t avg; /* Average secs between packets * scale */
15 u_int32_t burst; /* Period multiplier for upper limit. */ 14 u_int32_t burst; /* Period multiplier for upper limit. */
16 15
diff --git a/include/linux/netfilter_bridge/ebt_log.h b/include/linux/netfilter_bridge/ebt_log.h
index b76e653157e5..cc2cdfb764bc 100644
--- a/include/linux/netfilter_bridge/ebt_log.h
+++ b/include/linux/netfilter_bridge/ebt_log.h
@@ -9,8 +9,7 @@
9#define EBT_LOG_PREFIX_SIZE 30 9#define EBT_LOG_PREFIX_SIZE 30
10#define EBT_LOG_WATCHER "log" 10#define EBT_LOG_WATCHER "log"
11 11
12struct ebt_log_info 12struct ebt_log_info {
13{
14 uint8_t loglevel; 13 uint8_t loglevel;
15 uint8_t prefix[EBT_LOG_PREFIX_SIZE]; 14 uint8_t prefix[EBT_LOG_PREFIX_SIZE];
16 uint32_t bitmask; 15 uint32_t bitmask;
diff --git a/include/linux/netfilter_bridge/ebt_mark_m.h b/include/linux/netfilter_bridge/ebt_mark_m.h
index 301524ff1065..9ceb10ec0ed6 100644
--- a/include/linux/netfilter_bridge/ebt_mark_m.h
+++ b/include/linux/netfilter_bridge/ebt_mark_m.h
@@ -4,8 +4,7 @@
4#define EBT_MARK_AND 0x01 4#define EBT_MARK_AND 0x01
5#define EBT_MARK_OR 0x02 5#define EBT_MARK_OR 0x02
6#define EBT_MARK_MASK (EBT_MARK_AND | EBT_MARK_OR) 6#define EBT_MARK_MASK (EBT_MARK_AND | EBT_MARK_OR)
7struct ebt_mark_m_info 7struct ebt_mark_m_info {
8{
9 unsigned long mark, mask; 8 unsigned long mark, mask;
10 uint8_t invert; 9 uint8_t invert;
11 uint8_t bitmask; 10 uint8_t bitmask;
diff --git a/include/linux/netfilter_bridge/ebt_mark_t.h b/include/linux/netfilter_bridge/ebt_mark_t.h
index 6270f6f33693..7d5a268a4311 100644
--- a/include/linux/netfilter_bridge/ebt_mark_t.h
+++ b/include/linux/netfilter_bridge/ebt_mark_t.h
@@ -13,8 +13,7 @@
13#define MARK_AND_VALUE (0xffffffd0) 13#define MARK_AND_VALUE (0xffffffd0)
14#define MARK_XOR_VALUE (0xffffffc0) 14#define MARK_XOR_VALUE (0xffffffc0)
15 15
16struct ebt_mark_t_info 16struct ebt_mark_t_info {
17{
18 unsigned long mark; 17 unsigned long mark;
19 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ 18 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
20 int target; 19 int target;
diff --git a/include/linux/netfilter_bridge/ebt_nat.h b/include/linux/netfilter_bridge/ebt_nat.h
index 435b886a51aa..5e74e3b03bd6 100644
--- a/include/linux/netfilter_bridge/ebt_nat.h
+++ b/include/linux/netfilter_bridge/ebt_nat.h
@@ -2,8 +2,7 @@
2#define __LINUX_BRIDGE_EBT_NAT_H 2#define __LINUX_BRIDGE_EBT_NAT_H
3 3
4#define NAT_ARP_BIT (0x00000010) 4#define NAT_ARP_BIT (0x00000010)
5struct ebt_nat_info 5struct ebt_nat_info {
6{
7 unsigned char mac[ETH_ALEN]; 6 unsigned char mac[ETH_ALEN];
8 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ 7 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
9 int target; 8 int target;
diff --git a/include/linux/netfilter_bridge/ebt_pkttype.h b/include/linux/netfilter_bridge/ebt_pkttype.h
index 0d64bbb29c66..51a799840931 100644
--- a/include/linux/netfilter_bridge/ebt_pkttype.h
+++ b/include/linux/netfilter_bridge/ebt_pkttype.h
@@ -1,8 +1,7 @@
1#ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H 1#ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H
2#define __LINUX_BRIDGE_EBT_PKTTYPE_H 2#define __LINUX_BRIDGE_EBT_PKTTYPE_H
3 3
4struct ebt_pkttype_info 4struct ebt_pkttype_info {
5{
6 uint8_t pkt_type; 5 uint8_t pkt_type;
7 uint8_t invert; 6 uint8_t invert;
8}; 7};
diff --git a/include/linux/netfilter_bridge/ebt_redirect.h b/include/linux/netfilter_bridge/ebt_redirect.h
index 5c67990fce39..dd9622ce8488 100644
--- a/include/linux/netfilter_bridge/ebt_redirect.h
+++ b/include/linux/netfilter_bridge/ebt_redirect.h
@@ -1,8 +1,7 @@
1#ifndef __LINUX_BRIDGE_EBT_REDIRECT_H 1#ifndef __LINUX_BRIDGE_EBT_REDIRECT_H
2#define __LINUX_BRIDGE_EBT_REDIRECT_H 2#define __LINUX_BRIDGE_EBT_REDIRECT_H
3 3
4struct ebt_redirect_info 4struct ebt_redirect_info {
5{
6 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */ 5 /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
7 int target; 6 int target;
8}; 7};
diff --git a/include/linux/netfilter_bridge/ebt_stp.h b/include/linux/netfilter_bridge/ebt_stp.h
index e5fd67850f4d..e503a0aa2728 100644
--- a/include/linux/netfilter_bridge/ebt_stp.h
+++ b/include/linux/netfilter_bridge/ebt_stp.h
@@ -20,8 +20,7 @@
20 20
21#define EBT_STP_MATCH "stp" 21#define EBT_STP_MATCH "stp"
22 22
23struct ebt_stp_config_info 23struct ebt_stp_config_info {
24{
25 uint8_t flags; 24 uint8_t flags;
26 uint16_t root_priol, root_priou; 25 uint16_t root_priol, root_priou;
27 char root_addr[6], root_addrmsk[6]; 26 char root_addr[6], root_addrmsk[6];
@@ -35,8 +34,7 @@ struct ebt_stp_config_info
35 uint16_t forward_delayl, forward_delayu; 34 uint16_t forward_delayl, forward_delayu;
36}; 35};
37 36
38struct ebt_stp_info 37struct ebt_stp_info {
39{
40 uint8_t type; 38 uint8_t type;
41 struct ebt_stp_config_info config; 39 struct ebt_stp_config_info config;
42 uint16_t bitmask; 40 uint16_t bitmask;
diff --git a/include/linux/netfilter_bridge/ebtables.h b/include/linux/netfilter_bridge/ebtables.h
index ea281e6a2048..3cc40c131cc3 100644
--- a/include/linux/netfilter_bridge/ebtables.h
+++ b/include/linux/netfilter_bridge/ebtables.h
@@ -34,14 +34,12 @@
34struct xt_match; 34struct xt_match;
35struct xt_target; 35struct xt_target;
36 36
37struct ebt_counter 37struct ebt_counter {
38{
39 uint64_t pcnt; 38 uint64_t pcnt;
40 uint64_t bcnt; 39 uint64_t bcnt;
41}; 40};
42 41
43struct ebt_replace 42struct ebt_replace {
44{
45 char name[EBT_TABLE_MAXNAMELEN]; 43 char name[EBT_TABLE_MAXNAMELEN];
46 unsigned int valid_hooks; 44 unsigned int valid_hooks;
47 /* nr of rules in the table */ 45 /* nr of rules in the table */
@@ -57,8 +55,7 @@ struct ebt_replace
57 char __user *entries; 55 char __user *entries;
58}; 56};
59 57
60struct ebt_replace_kernel 58struct ebt_replace_kernel {
61{
62 char name[EBT_TABLE_MAXNAMELEN]; 59 char name[EBT_TABLE_MAXNAMELEN];
63 unsigned int valid_hooks; 60 unsigned int valid_hooks;
64 /* nr of rules in the table */ 61 /* nr of rules in the table */
@@ -120,8 +117,7 @@ struct ebt_entries {
120#define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN \ 117#define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN \
121 | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST) 118 | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST)
122 119
123struct ebt_entry_match 120struct ebt_entry_match {
124{
125 union { 121 union {
126 char name[EBT_FUNCTION_MAXNAMELEN]; 122 char name[EBT_FUNCTION_MAXNAMELEN];
127 struct xt_match *match; 123 struct xt_match *match;
@@ -131,8 +127,7 @@ struct ebt_entry_match
131 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); 127 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
132}; 128};
133 129
134struct ebt_entry_watcher 130struct ebt_entry_watcher {
135{
136 union { 131 union {
137 char name[EBT_FUNCTION_MAXNAMELEN]; 132 char name[EBT_FUNCTION_MAXNAMELEN];
138 struct xt_target *watcher; 133 struct xt_target *watcher;
@@ -142,8 +137,7 @@ struct ebt_entry_watcher
142 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace)))); 137 unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
143}; 138};
144 139
145struct ebt_entry_target 140struct ebt_entry_target {
146{
147 union { 141 union {
148 char name[EBT_FUNCTION_MAXNAMELEN]; 142 char name[EBT_FUNCTION_MAXNAMELEN];
149 struct xt_target *target; 143 struct xt_target *target;
@@ -154,8 +148,7 @@ struct ebt_entry_target
154}; 148};
155 149
156#define EBT_STANDARD_TARGET "standard" 150#define EBT_STANDARD_TARGET "standard"
157struct ebt_standard_target 151struct ebt_standard_target {
158{
159 struct ebt_entry_target target; 152 struct ebt_entry_target target;
160 int verdict; 153 int verdict;
161}; 154};
@@ -206,8 +199,7 @@ struct ebt_entry {
206#define EBT_MATCH 0 199#define EBT_MATCH 0
207#define EBT_NOMATCH 1 200#define EBT_NOMATCH 1
208 201
209struct ebt_match 202struct ebt_match {
210{
211 struct list_head list; 203 struct list_head list;
212 const char name[EBT_FUNCTION_MAXNAMELEN]; 204 const char name[EBT_FUNCTION_MAXNAMELEN];
213 bool (*match)(const struct sk_buff *skb, const struct net_device *in, 205 bool (*match)(const struct sk_buff *skb, const struct net_device *in,
@@ -224,8 +216,7 @@ struct ebt_match
224 struct module *me; 216 struct module *me;
225}; 217};
226 218
227struct ebt_watcher 219struct ebt_watcher {
228{
229 struct list_head list; 220 struct list_head list;
230 const char name[EBT_FUNCTION_MAXNAMELEN]; 221 const char name[EBT_FUNCTION_MAXNAMELEN];
231 unsigned int (*target)(struct sk_buff *skb, 222 unsigned int (*target)(struct sk_buff *skb,
@@ -242,8 +233,7 @@ struct ebt_watcher
242 struct module *me; 233 struct module *me;
243}; 234};
244 235
245struct ebt_target 236struct ebt_target {
246{
247 struct list_head list; 237 struct list_head list;
248 const char name[EBT_FUNCTION_MAXNAMELEN]; 238 const char name[EBT_FUNCTION_MAXNAMELEN];
249 /* returns one of the standard EBT_* verdicts */ 239 /* returns one of the standard EBT_* verdicts */
@@ -262,15 +252,13 @@ struct ebt_target
262}; 252};
263 253
264/* used for jumping from and into user defined chains (udc) */ 254/* used for jumping from and into user defined chains (udc) */
265struct ebt_chainstack 255struct ebt_chainstack {
266{
267 struct ebt_entries *chaininfo; /* pointer to chain data */ 256 struct ebt_entries *chaininfo; /* pointer to chain data */
268 struct ebt_entry *e; /* pointer to entry data */ 257 struct ebt_entry *e; /* pointer to entry data */
269 unsigned int n; /* n'th entry */ 258 unsigned int n; /* n'th entry */
270}; 259};
271 260
272struct ebt_table_info 261struct ebt_table_info {
273{
274 /* total size of the entries */ 262 /* total size of the entries */
275 unsigned int entries_size; 263 unsigned int entries_size;
276 unsigned int nentries; 264 unsigned int nentries;
@@ -282,8 +270,7 @@ struct ebt_table_info
282 struct ebt_counter counters[0] ____cacheline_aligned; 270 struct ebt_counter counters[0] ____cacheline_aligned;
283}; 271};
284 272
285struct ebt_table 273struct ebt_table {
286{
287 struct list_head list; 274 struct list_head list;
288 char name[EBT_TABLE_MAXNAMELEN]; 275 char name[EBT_TABLE_MAXNAMELEN];
289 struct ebt_replace_kernel *table; 276 struct ebt_replace_kernel *table;
diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
index 61fafc868a7b..27b3f5807305 100644
--- a/include/linux/netfilter_ipv4/ip_tables.h
+++ b/include/linux/netfilter_ipv4/ip_tables.h
@@ -76,8 +76,7 @@ struct ipt_ip {
76/* This structure defines each of the firewall rules. Consists of 3 76/* This structure defines each of the firewall rules. Consists of 3
77 parts which are 1) general IP header stuff 2) match specific 77 parts which are 1) general IP header stuff 2) match specific
78 stuff 3) the target to perform if the rule matches */ 78 stuff 3) the target to perform if the rule matches */
79struct ipt_entry 79struct ipt_entry {
80{
81 struct ipt_ip ip; 80 struct ipt_ip ip;
82 81
83 /* Mark with fields that we care about. */ 82 /* Mark with fields that we care about. */
@@ -135,8 +134,7 @@ struct ipt_entry
135#define IPT_UDP_INV_MASK XT_UDP_INV_MASK 134#define IPT_UDP_INV_MASK XT_UDP_INV_MASK
136 135
137/* ICMP matching stuff */ 136/* ICMP matching stuff */
138struct ipt_icmp 137struct ipt_icmp {
139{
140 u_int8_t type; /* type to match */ 138 u_int8_t type; /* type to match */
141 u_int8_t code[2]; /* range of code */ 139 u_int8_t code[2]; /* range of code */
142 u_int8_t invflags; /* Inverse flags */ 140 u_int8_t invflags; /* Inverse flags */
@@ -146,8 +144,7 @@ struct ipt_icmp
146#define IPT_ICMP_INV 0x01 /* Invert the sense of type/code test */ 144#define IPT_ICMP_INV 0x01 /* Invert the sense of type/code test */
147 145
148/* The argument to IPT_SO_GET_INFO */ 146/* The argument to IPT_SO_GET_INFO */
149struct ipt_getinfo 147struct ipt_getinfo {
150{
151 /* Which table: caller fills this in. */ 148 /* Which table: caller fills this in. */
152 char name[IPT_TABLE_MAXNAMELEN]; 149 char name[IPT_TABLE_MAXNAMELEN];
153 150
@@ -169,8 +166,7 @@ struct ipt_getinfo
169}; 166};
170 167
171/* The argument to IPT_SO_SET_REPLACE. */ 168/* The argument to IPT_SO_SET_REPLACE. */
172struct ipt_replace 169struct ipt_replace {
173{
174 /* Which table. */ 170 /* Which table. */
175 char name[IPT_TABLE_MAXNAMELEN]; 171 char name[IPT_TABLE_MAXNAMELEN];
176 172
@@ -204,8 +200,7 @@ struct ipt_replace
204#define ipt_counters_info xt_counters_info 200#define ipt_counters_info xt_counters_info
205 201
206/* The argument to IPT_SO_GET_ENTRIES. */ 202/* The argument to IPT_SO_GET_ENTRIES. */
207struct ipt_get_entries 203struct ipt_get_entries {
208{
209 /* Which table: user fills this in. */ 204 /* Which table: user fills this in. */
210 char name[IPT_TABLE_MAXNAMELEN]; 205 char name[IPT_TABLE_MAXNAMELEN];
211 206
@@ -250,20 +245,17 @@ extern struct xt_table *ipt_register_table(struct net *net,
250extern void ipt_unregister_table(struct xt_table *table); 245extern void ipt_unregister_table(struct xt_table *table);
251 246
252/* Standard entry. */ 247/* Standard entry. */
253struct ipt_standard 248struct ipt_standard {
254{
255 struct ipt_entry entry; 249 struct ipt_entry entry;
256 struct ipt_standard_target target; 250 struct ipt_standard_target target;
257}; 251};
258 252
259struct ipt_error_target 253struct ipt_error_target {
260{
261 struct ipt_entry_target target; 254 struct ipt_entry_target target;
262 char errorname[IPT_FUNCTION_MAXNAMELEN]; 255 char errorname[IPT_FUNCTION_MAXNAMELEN];
263}; 256};
264 257
265struct ipt_error 258struct ipt_error {
266{
267 struct ipt_entry entry; 259 struct ipt_entry entry;
268 struct ipt_error_target target; 260 struct ipt_error_target target;
269}; 261};
@@ -301,8 +293,7 @@ extern unsigned int ipt_do_table(struct sk_buff *skb,
301#ifdef CONFIG_COMPAT 293#ifdef CONFIG_COMPAT
302#include <net/compat.h> 294#include <net/compat.h>
303 295
304struct compat_ipt_entry 296struct compat_ipt_entry {
305{
306 struct ipt_ip ip; 297 struct ipt_ip ip;
307 compat_uint_t nfcache; 298 compat_uint_t nfcache;
308 u_int16_t target_offset; 299 u_int16_t target_offset;
diff --git a/include/linux/netfilter_ipv4/ipt_SAME.h b/include/linux/netfilter_ipv4/ipt_SAME.h
index be6e682a85ec..2529660c5b38 100644
--- a/include/linux/netfilter_ipv4/ipt_SAME.h
+++ b/include/linux/netfilter_ipv4/ipt_SAME.h
@@ -5,8 +5,7 @@
5 5
6#define IPT_SAME_NODST 0x01 6#define IPT_SAME_NODST 0x01
7 7
8struct ipt_same_info 8struct ipt_same_info {
9{
10 unsigned char info; 9 unsigned char info;
11 u_int32_t rangesize; 10 u_int32_t rangesize;
12 u_int32_t ipnum; 11 u_int32_t ipnum;
diff --git a/include/linux/netfilter_ipv4/ipt_ah.h b/include/linux/netfilter_ipv4/ipt_ah.h
index 7b9a2ac7adb9..2e555b4d05e3 100644
--- a/include/linux/netfilter_ipv4/ipt_ah.h
+++ b/include/linux/netfilter_ipv4/ipt_ah.h
@@ -1,8 +1,7 @@
1#ifndef _IPT_AH_H 1#ifndef _IPT_AH_H
2#define _IPT_AH_H 2#define _IPT_AH_H
3 3
4struct ipt_ah 4struct ipt_ah {
5{
6 u_int32_t spis[2]; /* Security Parameter Index */ 5 u_int32_t spis[2]; /* Security Parameter Index */
7 u_int8_t invflags; /* Inverse flags */ 6 u_int8_t invflags; /* Inverse flags */
8}; 7};
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
index a64e1451ac38..b31050d20ae4 100644
--- a/include/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/linux/netfilter_ipv6/ip6_tables.h
@@ -88,8 +88,7 @@ struct ip6t_ip6 {
88/* This structure defines each of the firewall rules. Consists of 3 88/* This structure defines each of the firewall rules. Consists of 3
89 parts which are 1) general IP header stuff 2) match specific 89 parts which are 1) general IP header stuff 2) match specific
90 stuff 3) the target to perform if the rule matches */ 90 stuff 3) the target to perform if the rule matches */
91struct ip6t_entry 91struct ip6t_entry {
92{
93 struct ip6t_ip6 ipv6; 92 struct ip6t_ip6 ipv6;
94 93
95 /* Mark with fields that we care about. */ 94 /* Mark with fields that we care about. */
@@ -111,20 +110,17 @@ struct ip6t_entry
111}; 110};
112 111
113/* Standard entry */ 112/* Standard entry */
114struct ip6t_standard 113struct ip6t_standard {
115{
116 struct ip6t_entry entry; 114 struct ip6t_entry entry;
117 struct ip6t_standard_target target; 115 struct ip6t_standard_target target;
118}; 116};
119 117
120struct ip6t_error_target 118struct ip6t_error_target {
121{
122 struct ip6t_entry_target target; 119 struct ip6t_entry_target target;
123 char errorname[IP6T_FUNCTION_MAXNAMELEN]; 120 char errorname[IP6T_FUNCTION_MAXNAMELEN];
124}; 121};
125 122
126struct ip6t_error 123struct ip6t_error {
127{
128 struct ip6t_entry entry; 124 struct ip6t_entry entry;
129 struct ip6t_error_target target; 125 struct ip6t_error_target target;
130}; 126};
@@ -195,8 +191,7 @@ struct ip6t_error
195#define IP6T_UDP_INV_MASK XT_UDP_INV_MASK 191#define IP6T_UDP_INV_MASK XT_UDP_INV_MASK
196 192
197/* ICMP matching stuff */ 193/* ICMP matching stuff */
198struct ip6t_icmp 194struct ip6t_icmp {
199{
200 u_int8_t type; /* type to match */ 195 u_int8_t type; /* type to match */
201 u_int8_t code[2]; /* range of code */ 196 u_int8_t code[2]; /* range of code */
202 u_int8_t invflags; /* Inverse flags */ 197 u_int8_t invflags; /* Inverse flags */
@@ -206,8 +201,7 @@ struct ip6t_icmp
206#define IP6T_ICMP_INV 0x01 /* Invert the sense of type/code test */ 201#define IP6T_ICMP_INV 0x01 /* Invert the sense of type/code test */
207 202
208/* The argument to IP6T_SO_GET_INFO */ 203/* The argument to IP6T_SO_GET_INFO */
209struct ip6t_getinfo 204struct ip6t_getinfo {
210{
211 /* Which table: caller fills this in. */ 205 /* Which table: caller fills this in. */
212 char name[IP6T_TABLE_MAXNAMELEN]; 206 char name[IP6T_TABLE_MAXNAMELEN];
213 207
@@ -229,8 +223,7 @@ struct ip6t_getinfo
229}; 223};
230 224
231/* The argument to IP6T_SO_SET_REPLACE. */ 225/* The argument to IP6T_SO_SET_REPLACE. */
232struct ip6t_replace 226struct ip6t_replace {
233{
234 /* Which table. */ 227 /* Which table. */
235 char name[IP6T_TABLE_MAXNAMELEN]; 228 char name[IP6T_TABLE_MAXNAMELEN];
236 229
@@ -264,8 +257,7 @@ struct ip6t_replace
264#define ip6t_counters_info xt_counters_info 257#define ip6t_counters_info xt_counters_info
265 258
266/* The argument to IP6T_SO_GET_ENTRIES. */ 259/* The argument to IP6T_SO_GET_ENTRIES. */
267struct ip6t_get_entries 260struct ip6t_get_entries {
268{
269 /* Which table: user fills this in. */ 261 /* Which table: user fills this in. */
270 char name[IP6T_TABLE_MAXNAMELEN]; 262 char name[IP6T_TABLE_MAXNAMELEN];
271 263
@@ -330,8 +322,7 @@ extern int ip6_masked_addrcmp(const struct in6_addr *addr1,
330#ifdef CONFIG_COMPAT 322#ifdef CONFIG_COMPAT
331#include <net/compat.h> 323#include <net/compat.h>
332 324
333struct compat_ip6t_entry 325struct compat_ip6t_entry {
334{
335 struct ip6t_ip6 ipv6; 326 struct ip6t_ip6 ipv6;
336 compat_uint_t nfcache; 327 compat_uint_t nfcache;
337 u_int16_t target_offset; 328 u_int16_t target_offset;
diff --git a/include/linux/netfilter_ipv6/ip6t_ah.h b/include/linux/netfilter_ipv6/ip6t_ah.h
index 8531879eb464..17a745cfb2c7 100644
--- a/include/linux/netfilter_ipv6/ip6t_ah.h
+++ b/include/linux/netfilter_ipv6/ip6t_ah.h
@@ -1,8 +1,7 @@
1#ifndef _IP6T_AH_H 1#ifndef _IP6T_AH_H
2#define _IP6T_AH_H 2#define _IP6T_AH_H
3 3
4struct ip6t_ah 4struct ip6t_ah {
5{
6 u_int32_t spis[2]; /* Security Parameter Index */ 5 u_int32_t spis[2]; /* Security Parameter Index */
7 u_int32_t hdrlen; /* Header Length */ 6 u_int32_t hdrlen; /* Header Length */
8 u_int8_t hdrres; /* Test of the Reserved Filed */ 7 u_int8_t hdrres; /* Test of the Reserved Filed */
diff --git a/include/linux/netfilter_ipv6/ip6t_frag.h b/include/linux/netfilter_ipv6/ip6t_frag.h
index 66070a0d6dfc..3724d0850920 100644
--- a/include/linux/netfilter_ipv6/ip6t_frag.h
+++ b/include/linux/netfilter_ipv6/ip6t_frag.h
@@ -1,8 +1,7 @@
1#ifndef _IP6T_FRAG_H 1#ifndef _IP6T_FRAG_H
2#define _IP6T_FRAG_H 2#define _IP6T_FRAG_H
3 3
4struct ip6t_frag 4struct ip6t_frag {
5{
6 u_int32_t ids[2]; /* Security Parameter Index */ 5 u_int32_t ids[2]; /* Security Parameter Index */
7 u_int32_t hdrlen; /* Header Length */ 6 u_int32_t hdrlen; /* Header Length */
8 u_int8_t flags; /* */ 7 u_int8_t flags; /* */
diff --git a/include/linux/netfilter_ipv6/ip6t_ipv6header.h b/include/linux/netfilter_ipv6/ip6t_ipv6header.h
index 51c53fc9c44a..01dfd445596a 100644
--- a/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+++ b/include/linux/netfilter_ipv6/ip6t_ipv6header.h
@@ -8,8 +8,7 @@ on whether they contain certain headers */
8#ifndef __IPV6HEADER_H 8#ifndef __IPV6HEADER_H
9#define __IPV6HEADER_H 9#define __IPV6HEADER_H
10 10
11struct ip6t_ipv6header_info 11struct ip6t_ipv6header_info {
12{
13 u_int8_t matchflags; 12 u_int8_t matchflags;
14 u_int8_t invflags; 13 u_int8_t invflags;
15 u_int8_t modeflag; 14 u_int8_t modeflag;
diff --git a/include/linux/netfilter_ipv6/ip6t_mh.h b/include/linux/netfilter_ipv6/ip6t_mh.h
index b9ca9a5f74d0..18549bca2d1f 100644
--- a/include/linux/netfilter_ipv6/ip6t_mh.h
+++ b/include/linux/netfilter_ipv6/ip6t_mh.h
@@ -2,8 +2,7 @@
2#define _IP6T_MH_H 2#define _IP6T_MH_H
3 3
4/* MH matching stuff */ 4/* MH matching stuff */
5struct ip6t_mh 5struct ip6t_mh {
6{
7 u_int8_t types[2]; /* MH type range */ 6 u_int8_t types[2]; /* MH type range */
8 u_int8_t invflags; /* Inverse flags */ 7 u_int8_t invflags; /* Inverse flags */
9}; 8};
diff --git a/include/linux/netfilter_ipv6/ip6t_opts.h b/include/linux/netfilter_ipv6/ip6t_opts.h
index a07e36380ae8..62d89bcd9f9c 100644
--- a/include/linux/netfilter_ipv6/ip6t_opts.h
+++ b/include/linux/netfilter_ipv6/ip6t_opts.h
@@ -3,8 +3,7 @@
3 3
4#define IP6T_OPTS_OPTSNR 16 4#define IP6T_OPTS_OPTSNR 16
5 5
6struct ip6t_opts 6struct ip6t_opts {
7{
8 u_int32_t hdrlen; /* Header Length */ 7 u_int32_t hdrlen; /* Header Length */
9 u_int8_t flags; /* */ 8 u_int8_t flags; /* */
10 u_int8_t invflags; /* Inverse flags */ 9 u_int8_t invflags; /* Inverse flags */
diff --git a/include/linux/netfilter_ipv6/ip6t_rt.h b/include/linux/netfilter_ipv6/ip6t_rt.h
index 52156023e8db..ab91bfd2cd00 100644
--- a/include/linux/netfilter_ipv6/ip6t_rt.h
+++ b/include/linux/netfilter_ipv6/ip6t_rt.h
@@ -5,8 +5,7 @@
5 5
6#define IP6T_RT_HOPS 16 6#define IP6T_RT_HOPS 16
7 7
8struct ip6t_rt 8struct ip6t_rt {
9{
10 u_int32_t rt_type; /* Routing Type */ 9 u_int32_t rt_type; /* Routing Type */
11 u_int32_t segsleft[2]; /* Segments Left */ 10 u_int32_t segsleft[2]; /* Segments Left */
12 u_int32_t hdrlen; /* Header Length */ 11 u_int32_t hdrlen; /* Header Length */
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index ab5d3126831f..fde27c017326 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -29,16 +29,14 @@
29 29
30struct net; 30struct net;
31 31
32struct sockaddr_nl 32struct sockaddr_nl {
33{
34 sa_family_t nl_family; /* AF_NETLINK */ 33 sa_family_t nl_family; /* AF_NETLINK */
35 unsigned short nl_pad; /* zero */ 34 unsigned short nl_pad; /* zero */
36 __u32 nl_pid; /* port ID */ 35 __u32 nl_pid; /* port ID */
37 __u32 nl_groups; /* multicast groups mask */ 36 __u32 nl_groups; /* multicast groups mask */
38}; 37};
39 38
40struct nlmsghdr 39struct nlmsghdr {
41{
42 __u32 nlmsg_len; /* Length of message including header */ 40 __u32 nlmsg_len; /* Length of message including header */
43 __u16 nlmsg_type; /* Message content */ 41 __u16 nlmsg_type; /* Message content */
44 __u16 nlmsg_flags; /* Additional flags */ 42 __u16 nlmsg_flags; /* Additional flags */
@@ -94,8 +92,7 @@ struct nlmsghdr
94 92
95#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */ 93#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */
96 94
97struct nlmsgerr 95struct nlmsgerr {
98{
99 int error; 96 int error;
100 struct nlmsghdr msg; 97 struct nlmsghdr msg;
101}; 98};
@@ -106,8 +103,7 @@ struct nlmsgerr
106#define NETLINK_BROADCAST_ERROR 4 103#define NETLINK_BROADCAST_ERROR 4
107#define NETLINK_NO_ENOBUFS 5 104#define NETLINK_NO_ENOBUFS 5
108 105
109struct nl_pktinfo 106struct nl_pktinfo {
110{
111 __u32 group; 107 __u32 group;
112}; 108};
113 109
@@ -127,8 +123,7 @@ enum {
127 * <-------------- nlattr->nla_len --------------> 123 * <-------------- nlattr->nla_len -------------->
128 */ 124 */
129 125
130struct nlattr 126struct nlattr {
131{
132 __u16 nla_len; 127 __u16 nla_len;
133 __u16 nla_type; 128 __u16 nla_type;
134}; 129};
@@ -161,8 +156,7 @@ static inline struct nlmsghdr *nlmsg_hdr(const struct sk_buff *skb)
161 return (struct nlmsghdr *)skb->data; 156 return (struct nlmsghdr *)skb->data;
162} 157}
163 158
164struct netlink_skb_parms 159struct netlink_skb_parms {
165{
166 struct ucred creds; /* Skb credentials */ 160 struct ucred creds; /* Skb credentials */
167 __u32 pid; 161 __u32 pid;
168 __u32 dst_group; 162 __u32 dst_group;
@@ -220,8 +214,7 @@ int netlink_sendskb(struct sock *sk, struct sk_buff *skb);
220#define NLMSG_DEFAULT_SIZE (NLMSG_GOODSIZE - NLMSG_HDRLEN) 214#define NLMSG_DEFAULT_SIZE (NLMSG_GOODSIZE - NLMSG_HDRLEN)
221 215
222 216
223struct netlink_callback 217struct netlink_callback {
224{
225 struct sk_buff *skb; 218 struct sk_buff *skb;
226 const struct nlmsghdr *nlh; 219 const struct nlmsghdr *nlh;
227 int (*dump)(struct sk_buff * skb, 220 int (*dump)(struct sk_buff * skb,
@@ -231,8 +224,7 @@ struct netlink_callback
231 long args[6]; 224 long args[6];
232}; 225};
233 226
234struct netlink_notify 227struct netlink_notify {
235{
236 struct net *net; 228 struct net *net;
237 int pid; 229 int pid;
238 int protocol; 230 int protocol;
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index f6b90240dd41..d09db1bc9083 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -40,7 +40,6 @@
40#ifdef __KERNEL__ 40#ifdef __KERNEL__
41 41
42#include <linux/in.h> 42#include <linux/in.h>
43#include <linux/kref.h>
44#include <linux/mm.h> 43#include <linux/mm.h>
45#include <linux/pagemap.h> 44#include <linux/pagemap.h>
46#include <linux/rbtree.h> 45#include <linux/rbtree.h>
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index a8d71ed43a0e..50afca3dcff1 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1277,6 +1277,7 @@ enum nl80211_channel_type {
1277 * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon 1277 * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon
1278 * in unspecified units, scaled to 0..100 (u8) 1278 * in unspecified units, scaled to 0..100 (u8)
1279 * @NL80211_BSS_STATUS: status, if this BSS is "used" 1279 * @NL80211_BSS_STATUS: status, if this BSS is "used"
1280 * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms
1280 * @__NL80211_BSS_AFTER_LAST: internal 1281 * @__NL80211_BSS_AFTER_LAST: internal
1281 * @NL80211_BSS_MAX: highest BSS attribute 1282 * @NL80211_BSS_MAX: highest BSS attribute
1282 */ 1283 */
@@ -1291,6 +1292,7 @@ enum nl80211_bss {
1291 NL80211_BSS_SIGNAL_MBM, 1292 NL80211_BSS_SIGNAL_MBM,
1292 NL80211_BSS_SIGNAL_UNSPEC, 1293 NL80211_BSS_SIGNAL_UNSPEC,
1293 NL80211_BSS_STATUS, 1294 NL80211_BSS_STATUS,
1295 NL80211_BSS_SEEN_MS_AGO,
1294 1296
1295 /* keep last */ 1297 /* keep last */
1296 __NL80211_BSS_AFTER_LAST, 1298 __NL80211_BSS_AFTER_LAST,
diff --git a/include/linux/notifier.h b/include/linux/notifier.h
index 44428d247dbe..29714b8441b1 100644
--- a/include/linux/notifier.h
+++ b/include/linux/notifier.h
@@ -201,6 +201,7 @@ static inline int notifier_to_errno(int ret)
201#define NETDEV_PRE_UP 0x000D 201#define NETDEV_PRE_UP 0x000D
202#define NETDEV_BONDING_OLDTYPE 0x000E 202#define NETDEV_BONDING_OLDTYPE 0x000E
203#define NETDEV_BONDING_NEWTYPE 0x000F 203#define NETDEV_BONDING_NEWTYPE 0x000F
204#define NETDEV_POST_INIT 0x0010
204 205
205#define SYS_DOWN 0x0001 /* Notify of system down */ 206#define SYS_DOWN 0x0001 /* Notify of system down */
206#define SYS_RESTART SYS_DOWN 207#define SYS_RESTART SYS_DOWN
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h
index 368bd70f1d2d..7b7fbf433cff 100644
--- a/include/linux/perf_counter.h
+++ b/include/linux/perf_counter.h
@@ -361,7 +361,7 @@ enum perf_event_type {
361 * struct perf_event_header header; 361 * struct perf_event_header header;
362 * u32 pid, ppid; 362 * u32 pid, ppid;
363 * u32 tid, ptid; 363 * u32 tid, ptid;
364 * { u64 time; } && PERF_SAMPLE_TIME 364 * u64 time;
365 * }; 365 * };
366 */ 366 */
367 PERF_EVENT_FORK = 7, 367 PERF_EVENT_FORK = 7,
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index acefaf71e6dd..3a9d36d1e92a 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -357,7 +357,7 @@ enum perf_event_type {
357 * struct perf_event_header header; 357 * struct perf_event_header header;
358 * u32 pid, ppid; 358 * u32 pid, ppid;
359 * u32 tid, ptid; 359 * u32 tid, ptid;
360 * { u64 time; } && PERF_SAMPLE_TIME 360 * u64 time;
361 * }; 361 * };
362 */ 362 */
363 PERF_RECORD_FORK = 7, 363 PERF_RECORD_FORK = 7,
diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
index 3c842edff388..7f6ba8658abe 100644
--- a/include/linux/pkt_cls.h
+++ b/include/linux/pkt_cls.h
@@ -75,8 +75,7 @@ bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
75#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT)) 75#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
76 76
77/* Action attributes */ 77/* Action attributes */
78enum 78enum {
79{
80 TCA_ACT_UNSPEC, 79 TCA_ACT_UNSPEC,
81 TCA_ACT_KIND, 80 TCA_ACT_KIND,
82 TCA_ACT_OPTIONS, 81 TCA_ACT_OPTIONS,
@@ -108,8 +107,7 @@ enum
108#define TC_ACT_JUMP 0x10000000 107#define TC_ACT_JUMP 0x10000000
109 108
110/* Action type identifiers*/ 109/* Action type identifiers*/
111enum 110enum {
112{
113 TCA_ID_UNSPEC=0, 111 TCA_ID_UNSPEC=0,
114 TCA_ID_POLICE=1, 112 TCA_ID_POLICE=1,
115 /* other actions go here */ 113 /* other actions go here */
@@ -118,8 +116,7 @@ enum
118 116
119#define TCA_ID_MAX __TCA_ID_MAX 117#define TCA_ID_MAX __TCA_ID_MAX
120 118
121struct tc_police 119struct tc_police {
122{
123 __u32 index; 120 __u32 index;
124 int action; 121 int action;
125#define TC_POLICE_UNSPEC TC_ACT_UNSPEC 122#define TC_POLICE_UNSPEC TC_ACT_UNSPEC
@@ -138,15 +135,13 @@ struct tc_police
138 __u32 capab; 135 __u32 capab;
139}; 136};
140 137
141struct tcf_t 138struct tcf_t {
142{
143 __u64 install; 139 __u64 install;
144 __u64 lastuse; 140 __u64 lastuse;
145 __u64 expires; 141 __u64 expires;
146}; 142};
147 143
148struct tc_cnt 144struct tc_cnt {
149{
150 int refcnt; 145 int refcnt;
151 int bindcnt; 146 int bindcnt;
152}; 147};
@@ -158,8 +153,7 @@ struct tc_cnt
158 int refcnt; \ 153 int refcnt; \
159 int bindcnt 154 int bindcnt
160 155
161enum 156enum {
162{
163 TCA_POLICE_UNSPEC, 157 TCA_POLICE_UNSPEC,
164 TCA_POLICE_TBF, 158 TCA_POLICE_TBF,
165 TCA_POLICE_RATE, 159 TCA_POLICE_RATE,
@@ -182,8 +176,7 @@ enum
182#define TC_U32_UNSPEC 0 176#define TC_U32_UNSPEC 0
183#define TC_U32_ROOT (0xFFF00000) 177#define TC_U32_ROOT (0xFFF00000)
184 178
185enum 179enum {
186{
187 TCA_U32_UNSPEC, 180 TCA_U32_UNSPEC,
188 TCA_U32_CLASSID, 181 TCA_U32_CLASSID,
189 TCA_U32_HASH, 182 TCA_U32_HASH,
@@ -200,16 +193,14 @@ enum
200 193
201#define TCA_U32_MAX (__TCA_U32_MAX - 1) 194#define TCA_U32_MAX (__TCA_U32_MAX - 1)
202 195
203struct tc_u32_key 196struct tc_u32_key {
204{
205 __be32 mask; 197 __be32 mask;
206 __be32 val; 198 __be32 val;
207 int off; 199 int off;
208 int offmask; 200 int offmask;
209}; 201};
210 202
211struct tc_u32_sel 203struct tc_u32_sel {
212{
213 unsigned char flags; 204 unsigned char flags;
214 unsigned char offshift; 205 unsigned char offshift;
215 unsigned char nkeys; 206 unsigned char nkeys;
@@ -223,15 +214,13 @@ struct tc_u32_sel
223 struct tc_u32_key keys[0]; 214 struct tc_u32_key keys[0];
224}; 215};
225 216
226struct tc_u32_mark 217struct tc_u32_mark {
227{
228 __u32 val; 218 __u32 val;
229 __u32 mask; 219 __u32 mask;
230 __u32 success; 220 __u32 success;
231}; 221};
232 222
233struct tc_u32_pcnt 223struct tc_u32_pcnt {
234{
235 __u64 rcnt; 224 __u64 rcnt;
236 __u64 rhit; 225 __u64 rhit;
237 __u64 kcnts[0]; 226 __u64 kcnts[0];
@@ -249,8 +238,7 @@ struct tc_u32_pcnt
249 238
250/* RSVP filter */ 239/* RSVP filter */
251 240
252enum 241enum {
253{
254 TCA_RSVP_UNSPEC, 242 TCA_RSVP_UNSPEC,
255 TCA_RSVP_CLASSID, 243 TCA_RSVP_CLASSID,
256 TCA_RSVP_DST, 244 TCA_RSVP_DST,
@@ -263,15 +251,13 @@ enum
263 251
264#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 ) 252#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
265 253
266struct tc_rsvp_gpi 254struct tc_rsvp_gpi {
267{
268 __u32 key; 255 __u32 key;
269 __u32 mask; 256 __u32 mask;
270 int offset; 257 int offset;
271}; 258};
272 259
273struct tc_rsvp_pinfo 260struct tc_rsvp_pinfo {
274{
275 struct tc_rsvp_gpi dpi; 261 struct tc_rsvp_gpi dpi;
276 struct tc_rsvp_gpi spi; 262 struct tc_rsvp_gpi spi;
277 __u8 protocol; 263 __u8 protocol;
@@ -282,8 +268,7 @@ struct tc_rsvp_pinfo
282 268
283/* ROUTE filter */ 269/* ROUTE filter */
284 270
285enum 271enum {
286{
287 TCA_ROUTE4_UNSPEC, 272 TCA_ROUTE4_UNSPEC,
288 TCA_ROUTE4_CLASSID, 273 TCA_ROUTE4_CLASSID,
289 TCA_ROUTE4_TO, 274 TCA_ROUTE4_TO,
@@ -299,8 +284,7 @@ enum
299 284
300/* FW filter */ 285/* FW filter */
301 286
302enum 287enum {
303{
304 TCA_FW_UNSPEC, 288 TCA_FW_UNSPEC,
305 TCA_FW_CLASSID, 289 TCA_FW_CLASSID,
306 TCA_FW_POLICE, 290 TCA_FW_POLICE,
@@ -314,8 +298,7 @@ enum
314 298
315/* TC index filter */ 299/* TC index filter */
316 300
317enum 301enum {
318{
319 TCA_TCINDEX_UNSPEC, 302 TCA_TCINDEX_UNSPEC,
320 TCA_TCINDEX_HASH, 303 TCA_TCINDEX_HASH,
321 TCA_TCINDEX_MASK, 304 TCA_TCINDEX_MASK,
@@ -331,8 +314,7 @@ enum
331 314
332/* Flow filter */ 315/* Flow filter */
333 316
334enum 317enum {
335{
336 FLOW_KEY_SRC, 318 FLOW_KEY_SRC,
337 FLOW_KEY_DST, 319 FLOW_KEY_DST,
338 FLOW_KEY_PROTO, 320 FLOW_KEY_PROTO,
@@ -355,14 +337,12 @@ enum
355 337
356#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1) 338#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
357 339
358enum 340enum {
359{
360 FLOW_MODE_MAP, 341 FLOW_MODE_MAP,
361 FLOW_MODE_HASH, 342 FLOW_MODE_HASH,
362}; 343};
363 344
364enum 345enum {
365{
366 TCA_FLOW_UNSPEC, 346 TCA_FLOW_UNSPEC,
367 TCA_FLOW_KEYS, 347 TCA_FLOW_KEYS,
368 TCA_FLOW_MODE, 348 TCA_FLOW_MODE,
@@ -383,8 +363,7 @@ enum
383 363
384/* Basic filter */ 364/* Basic filter */
385 365
386enum 366enum {
387{
388 TCA_BASIC_UNSPEC, 367 TCA_BASIC_UNSPEC,
389 TCA_BASIC_CLASSID, 368 TCA_BASIC_CLASSID,
390 TCA_BASIC_EMATCHES, 369 TCA_BASIC_EMATCHES,
@@ -398,8 +377,7 @@ enum
398 377
399/* Cgroup classifier */ 378/* Cgroup classifier */
400 379
401enum 380enum {
402{
403 TCA_CGROUP_UNSPEC, 381 TCA_CGROUP_UNSPEC,
404 TCA_CGROUP_ACT, 382 TCA_CGROUP_ACT,
405 TCA_CGROUP_POLICE, 383 TCA_CGROUP_POLICE,
@@ -411,14 +389,12 @@ enum
411 389
412/* Extended Matches */ 390/* Extended Matches */
413 391
414struct tcf_ematch_tree_hdr 392struct tcf_ematch_tree_hdr {
415{
416 __u16 nmatches; 393 __u16 nmatches;
417 __u16 progid; 394 __u16 progid;
418}; 395};
419 396
420enum 397enum {
421{
422 TCA_EMATCH_TREE_UNSPEC, 398 TCA_EMATCH_TREE_UNSPEC,
423 TCA_EMATCH_TREE_HDR, 399 TCA_EMATCH_TREE_HDR,
424 TCA_EMATCH_TREE_LIST, 400 TCA_EMATCH_TREE_LIST,
@@ -426,8 +402,7 @@ enum
426}; 402};
427#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) 403#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
428 404
429struct tcf_ematch_hdr 405struct tcf_ematch_hdr {
430{
431 __u16 matchid; 406 __u16 matchid;
432 __u16 kind; 407 __u16 kind;
433 __u16 flags; 408 __u16 flags;
@@ -457,8 +432,7 @@ struct tcf_ematch_hdr
457#define TCF_EM_REL_MASK 3 432#define TCF_EM_REL_MASK 3
458#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) 433#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
459 434
460enum 435enum {
461{
462 TCF_LAYER_LINK, 436 TCF_LAYER_LINK,
463 TCF_LAYER_NETWORK, 437 TCF_LAYER_NETWORK,
464 TCF_LAYER_TRANSPORT, 438 TCF_LAYER_TRANSPORT,
@@ -479,13 +453,11 @@ enum
479#define TCF_EM_VLAN 6 453#define TCF_EM_VLAN 6
480#define TCF_EM_MAX 6 454#define TCF_EM_MAX 6
481 455
482enum 456enum {
483{
484 TCF_EM_PROG_TC 457 TCF_EM_PROG_TC
485}; 458};
486 459
487enum 460enum {
488{
489 TCF_EM_OPND_EQ, 461 TCF_EM_OPND_EQ,
490 TCF_EM_OPND_GT, 462 TCF_EM_OPND_GT,
491 TCF_EM_OPND_LT 463 TCF_EM_OPND_LT
diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
index d51a2b3e221e..2cfa4bc8dea6 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -29,8 +29,7 @@
29 Particular schedulers may have also their private records. 29 Particular schedulers may have also their private records.
30 */ 30 */
31 31
32struct tc_stats 32struct tc_stats {
33{
34 __u64 bytes; /* NUmber of enqueues bytes */ 33 __u64 bytes; /* NUmber of enqueues bytes */
35 __u32 packets; /* Number of enqueued packets */ 34 __u32 packets; /* Number of enqueued packets */
36 __u32 drops; /* Packets dropped because of lack of resources */ 35 __u32 drops; /* Packets dropped because of lack of resources */
@@ -42,8 +41,7 @@ struct tc_stats
42 __u32 backlog; 41 __u32 backlog;
43}; 42};
44 43
45struct tc_estimator 44struct tc_estimator {
46{
47 signed char interval; 45 signed char interval;
48 unsigned char ewma_log; 46 unsigned char ewma_log;
49}; 47};
@@ -75,8 +73,7 @@ struct tc_estimator
75#define TC_H_ROOT (0xFFFFFFFFU) 73#define TC_H_ROOT (0xFFFFFFFFU)
76#define TC_H_INGRESS (0xFFFFFFF1U) 74#define TC_H_INGRESS (0xFFFFFFF1U)
77 75
78struct tc_ratespec 76struct tc_ratespec {
79{
80 unsigned char cell_log; 77 unsigned char cell_log;
81 unsigned char __reserved; 78 unsigned char __reserved;
82 unsigned short overhead; 79 unsigned short overhead;
@@ -109,8 +106,7 @@ enum {
109 106
110/* FIFO section */ 107/* FIFO section */
111 108
112struct tc_fifo_qopt 109struct tc_fifo_qopt {
113{
114 __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */ 110 __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
115}; 111};
116 112
@@ -119,8 +115,7 @@ struct tc_fifo_qopt
119#define TCQ_PRIO_BANDS 16 115#define TCQ_PRIO_BANDS 16
120#define TCQ_MIN_PRIO_BANDS 2 116#define TCQ_MIN_PRIO_BANDS 2
121 117
122struct tc_prio_qopt 118struct tc_prio_qopt {
123{
124 int bands; /* Number of bands */ 119 int bands; /* Number of bands */
125 __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */ 120 __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
126}; 121};
@@ -134,8 +129,7 @@ struct tc_multiq_qopt {
134 129
135/* TBF section */ 130/* TBF section */
136 131
137struct tc_tbf_qopt 132struct tc_tbf_qopt {
138{
139 struct tc_ratespec rate; 133 struct tc_ratespec rate;
140 struct tc_ratespec peakrate; 134 struct tc_ratespec peakrate;
141 __u32 limit; 135 __u32 limit;
@@ -143,8 +137,7 @@ struct tc_tbf_qopt
143 __u32 mtu; 137 __u32 mtu;
144}; 138};
145 139
146enum 140enum {
147{
148 TCA_TBF_UNSPEC, 141 TCA_TBF_UNSPEC,
149 TCA_TBF_PARMS, 142 TCA_TBF_PARMS,
150 TCA_TBF_RTAB, 143 TCA_TBF_RTAB,
@@ -161,8 +154,7 @@ enum
161 154
162/* SFQ section */ 155/* SFQ section */
163 156
164struct tc_sfq_qopt 157struct tc_sfq_qopt {
165{
166 unsigned quantum; /* Bytes per round allocated to flow */ 158 unsigned quantum; /* Bytes per round allocated to flow */
167 int perturb_period; /* Period of hash perturbation */ 159 int perturb_period; /* Period of hash perturbation */
168 __u32 limit; /* Maximal packets in queue */ 160 __u32 limit; /* Maximal packets in queue */
@@ -170,8 +162,7 @@ struct tc_sfq_qopt
170 unsigned flows; /* Maximal number of flows */ 162 unsigned flows; /* Maximal number of flows */
171}; 163};
172 164
173struct tc_sfq_xstats 165struct tc_sfq_xstats {
174{
175 __s32 allot; 166 __s32 allot;
176}; 167};
177 168
@@ -186,8 +177,7 @@ struct tc_sfq_xstats
186 177
187/* RED section */ 178/* RED section */
188 179
189enum 180enum {
190{
191 TCA_RED_UNSPEC, 181 TCA_RED_UNSPEC,
192 TCA_RED_PARMS, 182 TCA_RED_PARMS,
193 TCA_RED_STAB, 183 TCA_RED_STAB,
@@ -196,8 +186,7 @@ enum
196 186
197#define TCA_RED_MAX (__TCA_RED_MAX - 1) 187#define TCA_RED_MAX (__TCA_RED_MAX - 1)
198 188
199struct tc_red_qopt 189struct tc_red_qopt {
200{
201 __u32 limit; /* HARD maximal queue length (bytes) */ 190 __u32 limit; /* HARD maximal queue length (bytes) */
202 __u32 qth_min; /* Min average length threshold (bytes) */ 191 __u32 qth_min; /* Min average length threshold (bytes) */
203 __u32 qth_max; /* Max average length threshold (bytes) */ 192 __u32 qth_max; /* Max average length threshold (bytes) */
@@ -209,8 +198,7 @@ struct tc_red_qopt
209#define TC_RED_HARDDROP 2 198#define TC_RED_HARDDROP 2
210}; 199};
211 200
212struct tc_red_xstats 201struct tc_red_xstats {
213{
214 __u32 early; /* Early drops */ 202 __u32 early; /* Early drops */
215 __u32 pdrop; /* Drops due to queue limits */ 203 __u32 pdrop; /* Drops due to queue limits */
216 __u32 other; /* Drops due to drop() calls */ 204 __u32 other; /* Drops due to drop() calls */
@@ -221,8 +209,7 @@ struct tc_red_xstats
221 209
222#define MAX_DPs 16 210#define MAX_DPs 16
223 211
224enum 212enum {
225{
226 TCA_GRED_UNSPEC, 213 TCA_GRED_UNSPEC,
227 TCA_GRED_PARMS, 214 TCA_GRED_PARMS,
228 TCA_GRED_STAB, 215 TCA_GRED_STAB,
@@ -232,8 +219,7 @@ enum
232 219
233#define TCA_GRED_MAX (__TCA_GRED_MAX - 1) 220#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
234 221
235struct tc_gred_qopt 222struct tc_gred_qopt {
236{
237 __u32 limit; /* HARD maximal queue length (bytes) */ 223 __u32 limit; /* HARD maximal queue length (bytes) */
238 __u32 qth_min; /* Min average length threshold (bytes) */ 224 __u32 qth_min; /* Min average length threshold (bytes) */
239 __u32 qth_max; /* Max average length threshold (bytes) */ 225 __u32 qth_max; /* Max average length threshold (bytes) */
@@ -253,8 +239,7 @@ struct tc_gred_qopt
253}; 239};
254 240
255/* gred setup */ 241/* gred setup */
256struct tc_gred_sopt 242struct tc_gred_sopt {
257{
258 __u32 DPs; 243 __u32 DPs;
259 __u32 def_DP; 244 __u32 def_DP;
260 __u8 grio; 245 __u8 grio;
@@ -267,8 +252,7 @@ struct tc_gred_sopt
267#define TC_HTB_MAXDEPTH 8 252#define TC_HTB_MAXDEPTH 8
268#define TC_HTB_PROTOVER 3 /* the same as HTB and TC's major */ 253#define TC_HTB_PROTOVER 3 /* the same as HTB and TC's major */
269 254
270struct tc_htb_opt 255struct tc_htb_opt {
271{
272 struct tc_ratespec rate; 256 struct tc_ratespec rate;
273 struct tc_ratespec ceil; 257 struct tc_ratespec ceil;
274 __u32 buffer; 258 __u32 buffer;
@@ -277,8 +261,7 @@ struct tc_htb_opt
277 __u32 level; /* out only */ 261 __u32 level; /* out only */
278 __u32 prio; 262 __u32 prio;
279}; 263};
280struct tc_htb_glob 264struct tc_htb_glob {
281{
282 __u32 version; /* to match HTB/TC */ 265 __u32 version; /* to match HTB/TC */
283 __u32 rate2quantum; /* bps->quantum divisor */ 266 __u32 rate2quantum; /* bps->quantum divisor */
284 __u32 defcls; /* default class number */ 267 __u32 defcls; /* default class number */
@@ -287,8 +270,7 @@ struct tc_htb_glob
287 /* stats */ 270 /* stats */
288 __u32 direct_pkts; /* count of non shapped packets */ 271 __u32 direct_pkts; /* count of non shapped packets */
289}; 272};
290enum 273enum {
291{
292 TCA_HTB_UNSPEC, 274 TCA_HTB_UNSPEC,
293 TCA_HTB_PARMS, 275 TCA_HTB_PARMS,
294 TCA_HTB_INIT, 276 TCA_HTB_INIT,
@@ -299,8 +281,7 @@ enum
299 281
300#define TCA_HTB_MAX (__TCA_HTB_MAX - 1) 282#define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
301 283
302struct tc_htb_xstats 284struct tc_htb_xstats {
303{
304 __u32 lends; 285 __u32 lends;
305 __u32 borrows; 286 __u32 borrows;
306 __u32 giants; /* too big packets (rate will not be accurate) */ 287 __u32 giants; /* too big packets (rate will not be accurate) */
@@ -310,28 +291,24 @@ struct tc_htb_xstats
310 291
311/* HFSC section */ 292/* HFSC section */
312 293
313struct tc_hfsc_qopt 294struct tc_hfsc_qopt {
314{
315 __u16 defcls; /* default class */ 295 __u16 defcls; /* default class */
316}; 296};
317 297
318struct tc_service_curve 298struct tc_service_curve {
319{
320 __u32 m1; /* slope of the first segment in bps */ 299 __u32 m1; /* slope of the first segment in bps */
321 __u32 d; /* x-projection of the first segment in us */ 300 __u32 d; /* x-projection of the first segment in us */
322 __u32 m2; /* slope of the second segment in bps */ 301 __u32 m2; /* slope of the second segment in bps */
323}; 302};
324 303
325struct tc_hfsc_stats 304struct tc_hfsc_stats {
326{
327 __u64 work; /* total work done */ 305 __u64 work; /* total work done */
328 __u64 rtwork; /* work done by real-time criteria */ 306 __u64 rtwork; /* work done by real-time criteria */
329 __u32 period; /* current period */ 307 __u32 period; /* current period */
330 __u32 level; /* class level in hierarchy */ 308 __u32 level; /* class level in hierarchy */
331}; 309};
332 310
333enum 311enum {
334{
335 TCA_HFSC_UNSPEC, 312 TCA_HFSC_UNSPEC,
336 TCA_HFSC_RSC, 313 TCA_HFSC_RSC,
337 TCA_HFSC_FSC, 314 TCA_HFSC_FSC,
@@ -348,8 +325,7 @@ enum
348#define TC_CBQ_MAXLEVEL 8 325#define TC_CBQ_MAXLEVEL 8
349#define TC_CBQ_DEF_EWMA 5 326#define TC_CBQ_DEF_EWMA 5
350 327
351struct tc_cbq_lssopt 328struct tc_cbq_lssopt {
352{
353 unsigned char change; 329 unsigned char change;
354 unsigned char flags; 330 unsigned char flags;
355#define TCF_CBQ_LSS_BOUNDED 1 331#define TCF_CBQ_LSS_BOUNDED 1
@@ -368,8 +344,7 @@ struct tc_cbq_lssopt
368 __u32 avpkt; 344 __u32 avpkt;
369}; 345};
370 346
371struct tc_cbq_wrropt 347struct tc_cbq_wrropt {
372{
373 unsigned char flags; 348 unsigned char flags;
374 unsigned char priority; 349 unsigned char priority;
375 unsigned char cpriority; 350 unsigned char cpriority;
@@ -378,8 +353,7 @@ struct tc_cbq_wrropt
378 __u32 weight; 353 __u32 weight;
379}; 354};
380 355
381struct tc_cbq_ovl 356struct tc_cbq_ovl {
382{
383 unsigned char strategy; 357 unsigned char strategy;
384#define TC_CBQ_OVL_CLASSIC 0 358#define TC_CBQ_OVL_CLASSIC 0
385#define TC_CBQ_OVL_DELAY 1 359#define TC_CBQ_OVL_DELAY 1
@@ -391,30 +365,26 @@ struct tc_cbq_ovl
391 __u32 penalty; 365 __u32 penalty;
392}; 366};
393 367
394struct tc_cbq_police 368struct tc_cbq_police {
395{
396 unsigned char police; 369 unsigned char police;
397 unsigned char __res1; 370 unsigned char __res1;
398 unsigned short __res2; 371 unsigned short __res2;
399}; 372};
400 373
401struct tc_cbq_fopt 374struct tc_cbq_fopt {
402{
403 __u32 split; 375 __u32 split;
404 __u32 defmap; 376 __u32 defmap;
405 __u32 defchange; 377 __u32 defchange;
406}; 378};
407 379
408struct tc_cbq_xstats 380struct tc_cbq_xstats {
409{
410 __u32 borrows; 381 __u32 borrows;
411 __u32 overactions; 382 __u32 overactions;
412 __s32 avgidle; 383 __s32 avgidle;
413 __s32 undertime; 384 __s32 undertime;
414}; 385};
415 386
416enum 387enum {
417{
418 TCA_CBQ_UNSPEC, 388 TCA_CBQ_UNSPEC,
419 TCA_CBQ_LSSOPT, 389 TCA_CBQ_LSSOPT,
420 TCA_CBQ_WRROPT, 390 TCA_CBQ_WRROPT,
@@ -459,8 +429,7 @@ enum {
459 429
460/* Network emulator */ 430/* Network emulator */
461 431
462enum 432enum {
463{
464 TCA_NETEM_UNSPEC, 433 TCA_NETEM_UNSPEC,
465 TCA_NETEM_CORR, 434 TCA_NETEM_CORR,
466 TCA_NETEM_DELAY_DIST, 435 TCA_NETEM_DELAY_DIST,
@@ -471,8 +440,7 @@ enum
471 440
472#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) 441#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
473 442
474struct tc_netem_qopt 443struct tc_netem_qopt {
475{
476 __u32 latency; /* added delay (us) */ 444 __u32 latency; /* added delay (us) */
477 __u32 limit; /* fifo limit (packets) */ 445 __u32 limit; /* fifo limit (packets) */
478 __u32 loss; /* random packet loss (0=none ~0=100%) */ 446 __u32 loss; /* random packet loss (0=none ~0=100%) */
@@ -481,21 +449,18 @@ struct tc_netem_qopt
481 __u32 jitter; /* random jitter in latency (us) */ 449 __u32 jitter; /* random jitter in latency (us) */
482}; 450};
483 451
484struct tc_netem_corr 452struct tc_netem_corr {
485{
486 __u32 delay_corr; /* delay correlation */ 453 __u32 delay_corr; /* delay correlation */
487 __u32 loss_corr; /* packet loss correlation */ 454 __u32 loss_corr; /* packet loss correlation */
488 __u32 dup_corr; /* duplicate correlation */ 455 __u32 dup_corr; /* duplicate correlation */
489}; 456};
490 457
491struct tc_netem_reorder 458struct tc_netem_reorder {
492{
493 __u32 probability; 459 __u32 probability;
494 __u32 correlation; 460 __u32 correlation;
495}; 461};
496 462
497struct tc_netem_corrupt 463struct tc_netem_corrupt {
498{
499 __u32 probability; 464 __u32 probability;
500 __u32 correlation; 465 __u32 correlation;
501}; 466};
@@ -504,8 +469,7 @@ struct tc_netem_corrupt
504 469
505/* DRR */ 470/* DRR */
506 471
507enum 472enum {
508{
509 TCA_DRR_UNSPEC, 473 TCA_DRR_UNSPEC,
510 TCA_DRR_QUANTUM, 474 TCA_DRR_QUANTUM,
511 __TCA_DRR_MAX 475 __TCA_DRR_MAX
@@ -513,8 +477,7 @@ enum
513 477
514#define TCA_DRR_MAX (__TCA_DRR_MAX - 1) 478#define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
515 479
516struct tc_drr_stats 480struct tc_drr_stats {
517{
518 __u32 deficit; 481 __u32 deficit;
519}; 482};
520 483
diff --git a/include/linux/poll.h b/include/linux/poll.h
index fa287f25138d..6673743946f7 100644
--- a/include/linux/poll.h
+++ b/include/linux/poll.h
@@ -6,10 +6,10 @@
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7 7
8#include <linux/compiler.h> 8#include <linux/compiler.h>
9#include <linux/ktime.h>
9#include <linux/wait.h> 10#include <linux/wait.h>
10#include <linux/string.h> 11#include <linux/string.h>
11#include <linux/fs.h> 12#include <linux/fs.h>
12#include <linux/sched.h>
13#include <asm/uaccess.h> 13#include <asm/uaccess.h>
14 14
15/* ~832 bytes of stack space used max in sys_select/sys_poll before allocating 15/* ~832 bytes of stack space used max in sys_select/sys_poll before allocating
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h
index 37aaf2b39863..4e768dda87b0 100644
--- a/include/linux/ramfs.h
+++ b/include/linux/ramfs.h
@@ -17,7 +17,7 @@ extern int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma);
17#endif 17#endif
18 18
19extern const struct file_operations ramfs_file_operations; 19extern const struct file_operations ramfs_file_operations;
20extern struct vm_operations_struct generic_file_vm_ops; 20extern const struct vm_operations_struct generic_file_vm_ops;
21extern int __init init_rootfs(void); 21extern int __init init_rootfs(void);
22 22
23#endif 23#endif
diff --git a/include/linux/rds.h b/include/linux/rds.h
index 89d46e1afbb1..cab4994c2f63 100644
--- a/include/linux/rds.h
+++ b/include/linux/rds.h
@@ -56,6 +56,7 @@
56/* deprecated: RDS_BARRIER 4 */ 56/* deprecated: RDS_BARRIER 4 */
57#define RDS_RECVERR 5 57#define RDS_RECVERR 5
58#define RDS_CONG_MONITOR 6 58#define RDS_CONG_MONITOR 6
59#define RDS_GET_MR_FOR_DEST 7
59 60
60/* 61/*
61 * Control message types for SOL_RDS. 62 * Control message types for SOL_RDS.
@@ -224,6 +225,13 @@ struct rds_get_mr_args {
224 uint64_t flags; 225 uint64_t flags;
225}; 226};
226 227
228struct rds_get_mr_for_dest_args {
229 struct sockaddr_storage dest_addr;
230 struct rds_iovec vec;
231 u_int64_t cookie_addr;
232 uint64_t flags;
233};
234
227struct rds_free_mr_args { 235struct rds_free_mr_args {
228 rds_rdma_cookie_t cookie; 236 rds_rdma_cookie_t cookie;
229 u_int64_t flags; 237 u_int64_t flags;
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
index 731af71cddc9..fcb9884df618 100644
--- a/include/linux/res_counter.h
+++ b/include/linux/res_counter.h
@@ -114,8 +114,7 @@ void res_counter_init(struct res_counter *counter, struct res_counter *parent);
114int __must_check res_counter_charge_locked(struct res_counter *counter, 114int __must_check res_counter_charge_locked(struct res_counter *counter,
115 unsigned long val); 115 unsigned long val);
116int __must_check res_counter_charge(struct res_counter *counter, 116int __must_check res_counter_charge(struct res_counter *counter,
117 unsigned long val, struct res_counter **limit_fail_at, 117 unsigned long val, struct res_counter **limit_fail_at);
118 struct res_counter **soft_limit_at);
119 118
120/* 119/*
121 * uncharge - tell that some portion of the resource is released 120 * uncharge - tell that some portion of the resource is released
@@ -128,8 +127,7 @@ int __must_check res_counter_charge(struct res_counter *counter,
128 */ 127 */
129 128
130void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val); 129void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val);
131void res_counter_uncharge(struct res_counter *counter, unsigned long val, 130void res_counter_uncharge(struct res_counter *counter, unsigned long val);
132 bool *was_soft_limit_excess);
133 131
134static inline bool res_counter_limit_check_locked(struct res_counter *cnt) 132static inline bool res_counter_limit_check_locked(struct res_counter *cnt)
135{ 133{
diff --git a/include/linux/route.h b/include/linux/route.h
index f7ed35d5e653..6600708311c8 100644
--- a/include/linux/route.h
+++ b/include/linux/route.h
@@ -27,8 +27,7 @@
27#include <linux/compiler.h> 27#include <linux/compiler.h>
28 28
29/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */ 29/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */
30struct rtentry 30struct rtentry {
31{
32 unsigned long rt_pad1; 31 unsigned long rt_pad1;
33 struct sockaddr rt_dst; /* target address */ 32 struct sockaddr rt_dst; /* target address */
34 struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */ 33 struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index adf2068d12b5..14fc906ed602 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -127,8 +127,7 @@ enum {
127 with attribute type. 127 with attribute type.
128 */ 128 */
129 129
130struct rtattr 130struct rtattr {
131{
132 unsigned short rta_len; 131 unsigned short rta_len;
133 unsigned short rta_type; 132 unsigned short rta_type;
134}; 133};
@@ -154,8 +153,7 @@ struct rtattr
154 * Definitions used in routing table administration. 153 * Definitions used in routing table administration.
155 ****/ 154 ****/
156 155
157struct rtmsg 156struct rtmsg {
158{
159 unsigned char rtm_family; 157 unsigned char rtm_family;
160 unsigned char rtm_dst_len; 158 unsigned char rtm_dst_len;
161 unsigned char rtm_src_len; 159 unsigned char rtm_src_len;
@@ -171,8 +169,7 @@ struct rtmsg
171 169
172/* rtm_type */ 170/* rtm_type */
173 171
174enum 172enum {
175{
176 RTN_UNSPEC, 173 RTN_UNSPEC,
177 RTN_UNICAST, /* Gateway or direct route */ 174 RTN_UNICAST, /* Gateway or direct route */
178 RTN_LOCAL, /* Accept locally */ 175 RTN_LOCAL, /* Accept locally */
@@ -230,8 +227,7 @@ enum
230 could be assigned a value between UNIVERSE and LINK. 227 could be assigned a value between UNIVERSE and LINK.
231*/ 228*/
232 229
233enum rt_scope_t 230enum rt_scope_t {
234{
235 RT_SCOPE_UNIVERSE=0, 231 RT_SCOPE_UNIVERSE=0,
236/* User defined values */ 232/* User defined values */
237 RT_SCOPE_SITE=200, 233 RT_SCOPE_SITE=200,
@@ -249,8 +245,7 @@ enum rt_scope_t
249 245
250/* Reserved table identifiers */ 246/* Reserved table identifiers */
251 247
252enum rt_class_t 248enum rt_class_t {
253{
254 RT_TABLE_UNSPEC=0, 249 RT_TABLE_UNSPEC=0,
255/* User defined values */ 250/* User defined values */
256 RT_TABLE_COMPAT=252, 251 RT_TABLE_COMPAT=252,
@@ -263,8 +258,7 @@ enum rt_class_t
263 258
264/* Routing message attributes */ 259/* Routing message attributes */
265 260
266enum rtattr_type_t 261enum rtattr_type_t {
267{
268 RTA_UNSPEC, 262 RTA_UNSPEC,
269 RTA_DST, 263 RTA_DST,
270 RTA_SRC, 264 RTA_SRC,
@@ -298,8 +292,7 @@ enum rtattr_type_t
298 * and rtt for different paths from multipath. 292 * and rtt for different paths from multipath.
299 */ 293 */
300 294
301struct rtnexthop 295struct rtnexthop {
302{
303 unsigned short rtnh_len; 296 unsigned short rtnh_len;
304 unsigned char rtnh_flags; 297 unsigned char rtnh_flags;
305 unsigned char rtnh_hops; 298 unsigned char rtnh_hops;
@@ -325,8 +318,7 @@ struct rtnexthop
325 318
326/* RTM_CACHEINFO */ 319/* RTM_CACHEINFO */
327 320
328struct rta_cacheinfo 321struct rta_cacheinfo {
329{
330 __u32 rta_clntref; 322 __u32 rta_clntref;
331 __u32 rta_lastuse; 323 __u32 rta_lastuse;
332 __s32 rta_expires; 324 __s32 rta_expires;
@@ -341,8 +333,7 @@ struct rta_cacheinfo
341 333
342/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */ 334/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */
343 335
344enum 336enum {
345{
346 RTAX_UNSPEC, 337 RTAX_UNSPEC,
347#define RTAX_UNSPEC RTAX_UNSPEC 338#define RTAX_UNSPEC RTAX_UNSPEC
348 RTAX_LOCK, 339 RTAX_LOCK,
@@ -377,12 +368,13 @@ enum
377#define RTAX_MAX (__RTAX_MAX - 1) 368#define RTAX_MAX (__RTAX_MAX - 1)
378 369
379#define RTAX_FEATURE_ECN 0x00000001 370#define RTAX_FEATURE_ECN 0x00000001
380#define RTAX_FEATURE_SACK 0x00000002 371#define RTAX_FEATURE_NO_SACK 0x00000002
381#define RTAX_FEATURE_TIMESTAMP 0x00000004 372#define RTAX_FEATURE_NO_TSTAMP 0x00000004
382#define RTAX_FEATURE_ALLFRAG 0x00000008 373#define RTAX_FEATURE_ALLFRAG 0x00000008
374#define RTAX_FEATURE_NO_WSCALE 0x00000010
375#define RTAX_FEATURE_NO_DSACK 0x00000020
383 376
384struct rta_session 377struct rta_session {
385{
386 __u8 proto; 378 __u8 proto;
387 __u8 pad1; 379 __u8 pad1;
388 __u16 pad2; 380 __u16 pad2;
@@ -407,8 +399,7 @@ struct rta_session
407 * General form of address family dependent message. 399 * General form of address family dependent message.
408 ****/ 400 ****/
409 401
410struct rtgenmsg 402struct rtgenmsg {
411{
412 unsigned char rtgen_family; 403 unsigned char rtgen_family;
413}; 404};
414 405
@@ -421,8 +412,7 @@ struct rtgenmsg
421 * on network protocol. 412 * on network protocol.
422 */ 413 */
423 414
424struct ifinfomsg 415struct ifinfomsg {
425{
426 unsigned char ifi_family; 416 unsigned char ifi_family;
427 unsigned char __ifi_pad; 417 unsigned char __ifi_pad;
428 unsigned short ifi_type; /* ARPHRD_* */ 418 unsigned short ifi_type; /* ARPHRD_* */
@@ -435,8 +425,7 @@ struct ifinfomsg
435 * prefix information 425 * prefix information
436 ****/ 426 ****/
437 427
438struct prefixmsg 428struct prefixmsg {
439{
440 unsigned char prefix_family; 429 unsigned char prefix_family;
441 unsigned char prefix_pad1; 430 unsigned char prefix_pad1;
442 unsigned short prefix_pad2; 431 unsigned short prefix_pad2;
@@ -457,8 +446,7 @@ enum
457 446
458#define PREFIX_MAX (__PREFIX_MAX - 1) 447#define PREFIX_MAX (__PREFIX_MAX - 1)
459 448
460struct prefix_cacheinfo 449struct prefix_cacheinfo {
461{
462 __u32 preferred_time; 450 __u32 preferred_time;
463 __u32 valid_time; 451 __u32 valid_time;
464}; 452};
@@ -468,8 +456,7 @@ struct prefix_cacheinfo
468 * Traffic control messages. 456 * Traffic control messages.
469 ****/ 457 ****/
470 458
471struct tcmsg 459struct tcmsg {
472{
473 unsigned char tcm_family; 460 unsigned char tcm_family;
474 unsigned char tcm__pad1; 461 unsigned char tcm__pad1;
475 unsigned short tcm__pad2; 462 unsigned short tcm__pad2;
@@ -479,8 +466,7 @@ struct tcmsg
479 __u32 tcm_info; 466 __u32 tcm_info;
480}; 467};
481 468
482enum 469enum {
483{
484 TCA_UNSPEC, 470 TCA_UNSPEC,
485 TCA_KIND, 471 TCA_KIND,
486 TCA_OPTIONS, 472 TCA_OPTIONS,
@@ -502,8 +488,7 @@ enum
502 * Neighbor Discovery userland options 488 * Neighbor Discovery userland options
503 ****/ 489 ****/
504 490
505struct nduseroptmsg 491struct nduseroptmsg {
506{
507 unsigned char nduseropt_family; 492 unsigned char nduseropt_family;
508 unsigned char nduseropt_pad1; 493 unsigned char nduseropt_pad1;
509 unsigned short nduseropt_opts_len; /* Total length of options */ 494 unsigned short nduseropt_opts_len; /* Total length of options */
@@ -515,8 +500,7 @@ struct nduseroptmsg
515 /* Followed by one or more ND options */ 500 /* Followed by one or more ND options */
516}; 501};
517 502
518enum 503enum {
519{
520 NDUSEROPT_UNSPEC, 504 NDUSEROPT_UNSPEC,
521 NDUSEROPT_SRCADDR, 505 NDUSEROPT_SRCADDR,
522 __NDUSEROPT_MAX 506 __NDUSEROPT_MAX
@@ -598,8 +582,7 @@ enum rtnetlink_groups {
598#define RTNLGRP_MAX (__RTNLGRP_MAX - 1) 582#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
599 583
600/* TC action piece */ 584/* TC action piece */
601struct tcamsg 585struct tcamsg {
602{
603 unsigned char tca_family; 586 unsigned char tca_family;
604 unsigned char tca__pad1; 587 unsigned char tca__pad1;
605 unsigned short tca__pad2; 588 unsigned short tca__pad2;
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index fe661afe0713..db532ce288be 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -176,6 +176,9 @@
176/* Qualcomm MSM SoCs */ 176/* Qualcomm MSM SoCs */
177#define PORT_MSM 88 177#define PORT_MSM 88
178 178
179/* BCM63xx family SoCs */
180#define PORT_BCM63XX 89
181
179#ifdef __KERNEL__ 182#ifdef __KERNEL__
180 183
181#include <linux/compiler.h> 184#include <linux/compiler.h>
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index bcdd6606f468..63f47426977a 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -389,8 +389,10 @@ struct sk_buff {
389#ifdef CONFIG_NETWORK_SECMARK 389#ifdef CONFIG_NETWORK_SECMARK
390 __u32 secmark; 390 __u32 secmark;
391#endif 391#endif
392 392 union {
393 __u32 mark; 393 __u32 mark;
394 __u32 dropcount;
395 };
394 396
395 __u16 vlan_tci; 397 __u16 vlan_tci;
396 398
@@ -489,8 +491,7 @@ extern int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb,
489 int len,int odd, struct sk_buff *skb), 491 int len,int odd, struct sk_buff *skb),
490 void *from, int length); 492 void *from, int length);
491 493
492struct skb_seq_state 494struct skb_seq_state {
493{
494 __u32 lower_offset; 495 __u32 lower_offset;
495 __u32 upper_offset; 496 __u32 upper_offset;
496 __u32 frag_idx; 497 __u32 frag_idx;
@@ -1489,6 +1490,16 @@ static inline struct sk_buff *netdev_alloc_skb(struct net_device *dev,
1489 return __netdev_alloc_skb(dev, length, GFP_ATOMIC); 1490 return __netdev_alloc_skb(dev, length, GFP_ATOMIC);
1490} 1491}
1491 1492
1493static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
1494 unsigned int length)
1495{
1496 struct sk_buff *skb = netdev_alloc_skb(dev, length + NET_IP_ALIGN);
1497
1498 if (NET_IP_ALIGN && skb)
1499 skb_reserve(skb, NET_IP_ALIGN);
1500 return skb;
1501}
1502
1492extern struct page *__netdev_alloc_page(struct net_device *dev, gfp_t gfp_mask); 1503extern struct page *__netdev_alloc_page(struct net_device *dev, gfp_t gfp_mask);
1493 1504
1494/** 1505/**
diff --git a/include/linux/smsc911x.h b/include/linux/smsc911x.h
index 5241e4fb4eca..7144e8aa1e41 100644
--- a/include/linux/smsc911x.h
+++ b/include/linux/smsc911x.h
@@ -30,6 +30,7 @@ struct smsc911x_platform_config {
30 unsigned int irq_type; 30 unsigned int irq_type;
31 unsigned int flags; 31 unsigned int flags;
32 phy_interface_t phy_interface; 32 phy_interface_t phy_interface;
33 unsigned char mac[6];
33}; 34};
34 35
35/* Constants for platform_device irq polarity configuration */ 36/* Constants for platform_device irq polarity configuration */
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 3273a0c5043b..7b3aae2052a6 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -24,6 +24,9 @@ struct __kernel_sockaddr_storage {
24#include <linux/types.h> /* pid_t */ 24#include <linux/types.h> /* pid_t */
25#include <linux/compiler.h> /* __user */ 25#include <linux/compiler.h> /* __user */
26 26
27#define __sockaddr_check_size(size) \
28 BUILD_BUG_ON(((size) > sizeof(struct __kernel_sockaddr_storage)))
29
27#ifdef __KERNEL__ 30#ifdef __KERNEL__
28# ifdef CONFIG_PROC_FS 31# ifdef CONFIG_PROC_FS
29struct seq_file; 32struct seq_file;
@@ -65,6 +68,12 @@ struct msghdr {
65 unsigned msg_flags; 68 unsigned msg_flags;
66}; 69};
67 70
71/* For recvmmsg/sendmmsg */
72struct mmsghdr {
73 struct msghdr msg_hdr;
74 unsigned msg_len;
75};
76
68/* 77/*
69 * POSIX 1003.1g - ancillary data object information 78 * POSIX 1003.1g - ancillary data object information
70 * Ancillary data consits of a sequence of pairs of 79 * Ancillary data consits of a sequence of pairs of
@@ -312,6 +321,10 @@ extern int move_addr_to_user(struct sockaddr *kaddr, int klen, void __user *uadd
312extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr); 321extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr *kaddr);
313extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data); 322extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
314 323
324struct timespec;
325
326extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
327 unsigned int flags, struct timespec *timeout);
315#endif 328#endif
316#endif /* not kernel and not glibc */ 329#endif /* not kernel and not glibc */
317#endif /* _LINUX_SOCKET_H */ 330#endif /* _LINUX_SOCKET_H */
diff --git a/include/linux/spi/lms283gf05.h b/include/linux/spi/lms283gf05.h
new file mode 100644
index 000000000000..555d254e6606
--- /dev/null
+++ b/include/linux/spi/lms283gf05.h
@@ -0,0 +1,28 @@
1/*
2 * lms283gf05.h - Platform glue for Samsung LMS283GF05 LCD
3 *
4 * Copyright (C) 2009 Marek Vasut <marek.vasut@gmail.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18*/
19
20#ifndef _INCLUDE_LINUX_SPI_LMS283GF05_H_
21#define _INCLUDE_LINUX_SPI_LMS283GF05_H_
22
23struct lms283gf05_pdata {
24 unsigned long reset_gpio;
25 bool reset_inverted;
26};
27
28#endif /* _INCLUDE_LINUX_SPI_LMS283GF05_H_ */
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 3d0a9ff24f01..24f988547361 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -269,7 +269,8 @@ struct ssb_bus {
269 269
270 const struct ssb_bus_ops *ops; 270 const struct ssb_bus_ops *ops;
271 271
272 /* The core in the basic address register window. (PCI bus only) */ 272 /* The core currently mapped into the MMIO window.
273 * Not valid on all host-buses. So don't use outside of SSB. */
273 struct ssb_device *mapped_device; 274 struct ssb_device *mapped_device;
274 union { 275 union {
275 /* Currently mapped PCMCIA segment. (bustype == SSB_BUSTYPE_PCMCIA only) */ 276 /* Currently mapped PCMCIA segment. (bustype == SSB_BUSTYPE_PCMCIA only) */
@@ -281,14 +282,17 @@ struct ssb_bus {
281 * On PCMCIA-host busses this is used to protect the whole MMIO access. */ 282 * On PCMCIA-host busses this is used to protect the whole MMIO access. */
282 spinlock_t bar_lock; 283 spinlock_t bar_lock;
283 284
284 /* The bus this backplane is running on. */ 285 /* The host-bus this backplane is running on. */
285 enum ssb_bustype bustype; 286 enum ssb_bustype bustype;
286 /* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */ 287 /* Pointers to the host-bus. Check bustype before using any of these pointers. */
287 struct pci_dev *host_pci; 288 union {
288 /* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */ 289 /* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
289 struct pcmcia_device *host_pcmcia; 290 struct pci_dev *host_pci;
290 /* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */ 291 /* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
291 struct sdio_func *host_sdio; 292 struct pcmcia_device *host_pcmcia;
293 /* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
294 struct sdio_func *host_sdio;
295 };
292 296
293 /* See enum ssb_quirks */ 297 /* See enum ssb_quirks */
294 unsigned int quirks; 298 unsigned int quirks;
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index a990ace1a838..714f063a3e6d 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -25,6 +25,7 @@ struct linux_dirent64;
25struct list_head; 25struct list_head;
26struct msgbuf; 26struct msgbuf;
27struct msghdr; 27struct msghdr;
28struct mmsghdr;
28struct msqid_ds; 29struct msqid_ds;
29struct new_utsname; 30struct new_utsname;
30struct nfsctl_arg; 31struct nfsctl_arg;
@@ -677,6 +678,9 @@ asmlinkage long sys_recv(int, void __user *, size_t, unsigned);
677asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned, 678asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned,
678 struct sockaddr __user *, int __user *); 679 struct sockaddr __user *, int __user *);
679asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags); 680asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
681asmlinkage long sys_recvmmsg(int fd, struct mmsghdr __user *msg,
682 unsigned int vlen, unsigned flags,
683 struct timespec __user *timeout);
680asmlinkage long sys_socket(int, int, int); 684asmlinkage long sys_socket(int, int, int);
681asmlinkage long sys_socketpair(int, int, int, int __user *); 685asmlinkage long sys_socketpair(int, int, int, int __user *);
682asmlinkage long sys_socketcall(int call, unsigned long __user *args); 686asmlinkage long sys_socketcall(int call, unsigned long __user *args);
diff --git a/include/linux/tc_act/tc_defact.h b/include/linux/tc_act/tc_defact.h
index 964f473af0f0..6f65d07c7ce2 100644
--- a/include/linux/tc_act/tc_defact.h
+++ b/include/linux/tc_act/tc_defact.h
@@ -3,13 +3,11 @@
3 3
4#include <linux/pkt_cls.h> 4#include <linux/pkt_cls.h>
5 5
6struct tc_defact 6struct tc_defact {
7{
8 tc_gen; 7 tc_gen;
9}; 8};
10 9
11enum 10enum {
12{
13 TCA_DEF_UNSPEC, 11 TCA_DEF_UNSPEC,
14 TCA_DEF_TM, 12 TCA_DEF_TM,
15 TCA_DEF_PARMS, 13 TCA_DEF_PARMS,
diff --git a/include/linux/tc_act/tc_gact.h b/include/linux/tc_act/tc_gact.h
index e895c0a39629..f7bf94eed510 100644
--- a/include/linux/tc_act/tc_gact.h
+++ b/include/linux/tc_act/tc_gact.h
@@ -5,14 +5,12 @@
5#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
6 6
7#define TCA_ACT_GACT 5 7#define TCA_ACT_GACT 5
8struct tc_gact 8struct tc_gact {
9{
10 tc_gen; 9 tc_gen;
11 10
12}; 11};
13 12
14struct tc_gact_p 13struct tc_gact_p {
15{
16#define PGACT_NONE 0 14#define PGACT_NONE 0
17#define PGACT_NETRAND 1 15#define PGACT_NETRAND 1
18#define PGACT_DETERM 2 16#define PGACT_DETERM 2
@@ -22,8 +20,7 @@ struct tc_gact_p
22 int paction; 20 int paction;
23}; 21};
24 22
25enum 23enum {
26{
27 TCA_GACT_UNSPEC, 24 TCA_GACT_UNSPEC,
28 TCA_GACT_TM, 25 TCA_GACT_TM,
29 TCA_GACT_PARMS, 26 TCA_GACT_PARMS,
diff --git a/include/linux/tc_act/tc_ipt.h b/include/linux/tc_act/tc_ipt.h
index 4b6f7b6c7a79..a2335563d21f 100644
--- a/include/linux/tc_act/tc_ipt.h
+++ b/include/linux/tc_act/tc_ipt.h
@@ -5,8 +5,7 @@
5 5
6#define TCA_ACT_IPT 6 6#define TCA_ACT_IPT 6
7 7
8enum 8enum {
9{
10 TCA_IPT_UNSPEC, 9 TCA_IPT_UNSPEC,
11 TCA_IPT_TABLE, 10 TCA_IPT_TABLE,
12 TCA_IPT_HOOK, 11 TCA_IPT_HOOK,
diff --git a/include/linux/tc_act/tc_mirred.h b/include/linux/tc_act/tc_mirred.h
index 0a99ab60d610..7561750e8fd6 100644
--- a/include/linux/tc_act/tc_mirred.h
+++ b/include/linux/tc_act/tc_mirred.h
@@ -10,15 +10,13 @@
10#define TCA_INGRESS_REDIR 3 /* packet redirect to INGRESS*/ 10#define TCA_INGRESS_REDIR 3 /* packet redirect to INGRESS*/
11#define TCA_INGRESS_MIRROR 4 /* mirror packet to INGRESS */ 11#define TCA_INGRESS_MIRROR 4 /* mirror packet to INGRESS */
12 12
13struct tc_mirred 13struct tc_mirred {
14{
15 tc_gen; 14 tc_gen;
16 int eaction; /* one of IN/EGRESS_MIRROR/REDIR */ 15 int eaction; /* one of IN/EGRESS_MIRROR/REDIR */
17 __u32 ifindex; /* ifindex of egress port */ 16 __u32 ifindex; /* ifindex of egress port */
18}; 17};
19 18
20enum 19enum {
21{
22 TCA_MIRRED_UNSPEC, 20 TCA_MIRRED_UNSPEC,
23 TCA_MIRRED_TM, 21 TCA_MIRRED_TM,
24 TCA_MIRRED_PARMS, 22 TCA_MIRRED_PARMS,
diff --git a/include/linux/tc_act/tc_nat.h b/include/linux/tc_act/tc_nat.h
index e7cf31e8ba79..6663aeba0b9a 100644
--- a/include/linux/tc_act/tc_nat.h
+++ b/include/linux/tc_act/tc_nat.h
@@ -6,8 +6,7 @@
6 6
7#define TCA_ACT_NAT 9 7#define TCA_ACT_NAT 9
8 8
9enum 9enum {
10{
11 TCA_NAT_UNSPEC, 10 TCA_NAT_UNSPEC,
12 TCA_NAT_PARMS, 11 TCA_NAT_PARMS,
13 TCA_NAT_TM, 12 TCA_NAT_TM,
@@ -17,8 +16,7 @@ enum
17 16
18#define TCA_NAT_FLAG_EGRESS 1 17#define TCA_NAT_FLAG_EGRESS 1
19 18
20struct tc_nat 19struct tc_nat {
21{
22 tc_gen; 20 tc_gen;
23 __be32 old_addr; 21 __be32 old_addr;
24 __be32 new_addr; 22 __be32 new_addr;
diff --git a/include/linux/tc_act/tc_pedit.h b/include/linux/tc_act/tc_pedit.h
index 54ce9064115a..716cfabcd5b2 100644
--- a/include/linux/tc_act/tc_pedit.h
+++ b/include/linux/tc_act/tc_pedit.h
@@ -6,8 +6,7 @@
6 6
7#define TCA_ACT_PEDIT 7 7#define TCA_ACT_PEDIT 7
8 8
9enum 9enum {
10{
11 TCA_PEDIT_UNSPEC, 10 TCA_PEDIT_UNSPEC,
12 TCA_PEDIT_TM, 11 TCA_PEDIT_TM,
13 TCA_PEDIT_PARMS, 12 TCA_PEDIT_PARMS,
@@ -15,8 +14,7 @@ enum
15}; 14};
16#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) 15#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
17 16
18struct tc_pedit_key 17struct tc_pedit_key {
19{
20 __u32 mask; /* AND */ 18 __u32 mask; /* AND */
21 __u32 val; /*XOR */ 19 __u32 val; /*XOR */
22 __u32 off; /*offset */ 20 __u32 off; /*offset */
@@ -25,8 +23,7 @@ struct tc_pedit_key
25 __u32 shift; 23 __u32 shift;
26}; 24};
27 25
28struct tc_pedit_sel 26struct tc_pedit_sel {
29{
30 tc_gen; 27 tc_gen;
31 unsigned char nkeys; 28 unsigned char nkeys;
32 unsigned char flags; 29 unsigned char flags;
diff --git a/include/linux/tc_act/tc_skbedit.h b/include/linux/tc_act/tc_skbedit.h
index a14e461a7af7..7a2e910a5f08 100644
--- a/include/linux/tc_act/tc_skbedit.h
+++ b/include/linux/tc_act/tc_skbedit.h
@@ -26,6 +26,7 @@
26 26
27#define SKBEDIT_F_PRIORITY 0x1 27#define SKBEDIT_F_PRIORITY 0x1
28#define SKBEDIT_F_QUEUE_MAPPING 0x2 28#define SKBEDIT_F_QUEUE_MAPPING 0x2
29#define SKBEDIT_F_MARK 0x4
29 30
30struct tc_skbedit { 31struct tc_skbedit {
31 tc_gen; 32 tc_gen;
@@ -37,6 +38,7 @@ enum {
37 TCA_SKBEDIT_PARMS, 38 TCA_SKBEDIT_PARMS,
38 TCA_SKBEDIT_PRIORITY, 39 TCA_SKBEDIT_PRIORITY,
39 TCA_SKBEDIT_QUEUE_MAPPING, 40 TCA_SKBEDIT_QUEUE_MAPPING,
41 TCA_SKBEDIT_MARK,
40 __TCA_SKBEDIT_MAX 42 __TCA_SKBEDIT_MAX
41}; 43};
42#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) 44#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
diff --git a/include/linux/tc_ematch/tc_em_cmp.h b/include/linux/tc_ematch/tc_em_cmp.h
index 38e7f7b25ec2..f34bb1bae083 100644
--- a/include/linux/tc_ematch/tc_em_cmp.h
+++ b/include/linux/tc_ematch/tc_em_cmp.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
6 6
7struct tcf_em_cmp 7struct tcf_em_cmp {
8{
9 __u32 val; 8 __u32 val;
10 __u32 mask; 9 __u32 mask;
11 __u16 off; 10 __u16 off;
@@ -15,8 +14,7 @@ struct tcf_em_cmp
15 __u8 opnd:4; 14 __u8 opnd:4;
16}; 15};
17 16
18enum 17enum {
19{
20 TCF_EM_ALIGN_U8 = 1, 18 TCF_EM_ALIGN_U8 = 1,
21 TCF_EM_ALIGN_U16 = 2, 19 TCF_EM_ALIGN_U16 = 2,
22 TCF_EM_ALIGN_U32 = 4 20 TCF_EM_ALIGN_U32 = 4
diff --git a/include/linux/tc_ematch/tc_em_meta.h b/include/linux/tc_ematch/tc_em_meta.h
index dcfb733fa1f6..0864206ec1a3 100644
--- a/include/linux/tc_ematch/tc_em_meta.h
+++ b/include/linux/tc_ematch/tc_em_meta.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
6 6
7enum 7enum {
8{
9 TCA_EM_META_UNSPEC, 8 TCA_EM_META_UNSPEC,
10 TCA_EM_META_HDR, 9 TCA_EM_META_HDR,
11 TCA_EM_META_LVALUE, 10 TCA_EM_META_LVALUE,
@@ -14,8 +13,7 @@ enum
14}; 13};
15#define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1) 14#define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1)
16 15
17struct tcf_meta_val 16struct tcf_meta_val {
18{
19 __u16 kind; 17 __u16 kind;
20 __u8 shift; 18 __u8 shift;
21 __u8 op; 19 __u8 op;
@@ -26,16 +24,14 @@ struct tcf_meta_val
26#define TCF_META_ID_MASK 0x7ff 24#define TCF_META_ID_MASK 0x7ff
27#define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK) 25#define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK)
28 26
29enum 27enum {
30{
31 TCF_META_TYPE_VAR, 28 TCF_META_TYPE_VAR,
32 TCF_META_TYPE_INT, 29 TCF_META_TYPE_INT,
33 __TCF_META_TYPE_MAX 30 __TCF_META_TYPE_MAX
34}; 31};
35#define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1) 32#define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1)
36 33
37enum 34enum {
38{
39 TCF_META_ID_VALUE, 35 TCF_META_ID_VALUE,
40 TCF_META_ID_RANDOM, 36 TCF_META_ID_RANDOM,
41 TCF_META_ID_LOADAVG_0, 37 TCF_META_ID_LOADAVG_0,
@@ -87,8 +83,7 @@ enum
87}; 83};
88#define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1) 84#define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1)
89 85
90struct tcf_meta_hdr 86struct tcf_meta_hdr {
91{
92 struct tcf_meta_val left; 87 struct tcf_meta_val left;
93 struct tcf_meta_val right; 88 struct tcf_meta_val right;
94}; 89};
diff --git a/include/linux/tc_ematch/tc_em_nbyte.h b/include/linux/tc_ematch/tc_em_nbyte.h
index 9ed8c2e58488..7172cfb999c1 100644
--- a/include/linux/tc_ematch/tc_em_nbyte.h
+++ b/include/linux/tc_ematch/tc_em_nbyte.h
@@ -4,8 +4,7 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
6 6
7struct tcf_em_nbyte 7struct tcf_em_nbyte {
8{
9 __u16 off; 8 __u16 off;
10 __u16 len:12; 9 __u16 len:12;
11 __u8 layer:4; 10 __u8 layer:4;
diff --git a/include/linux/tc_ematch/tc_em_text.h b/include/linux/tc_ematch/tc_em_text.h
index d12a73a225fc..5aac4045ba88 100644
--- a/include/linux/tc_ematch/tc_em_text.h
+++ b/include/linux/tc_ematch/tc_em_text.h
@@ -6,8 +6,7 @@
6 6
7#define TC_EM_TEXT_ALGOSIZ 16 7#define TC_EM_TEXT_ALGOSIZ 16
8 8
9struct tcf_em_text 9struct tcf_em_text {
10{
11 char algo[TC_EM_TEXT_ALGOSIZ]; 10 char algo[TC_EM_TEXT_ALGOSIZ];
12 __u16 from_offset; 11 __u16 from_offset;
13 __u16 to_offset; 12 __u16 to_offset;
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 61723a7c21fe..eeecb8547a2a 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -102,8 +102,7 @@ enum {
102#define TCPI_OPT_WSCALE 4 102#define TCPI_OPT_WSCALE 4
103#define TCPI_OPT_ECN 8 103#define TCPI_OPT_ECN 8
104 104
105enum tcp_ca_state 105enum tcp_ca_state {
106{
107 TCP_CA_Open = 0, 106 TCP_CA_Open = 0,
108#define TCPF_CA_Open (1<<TCP_CA_Open) 107#define TCPF_CA_Open (1<<TCP_CA_Open)
109 TCP_CA_Disorder = 1, 108 TCP_CA_Disorder = 1,
@@ -116,8 +115,7 @@ enum tcp_ca_state
116#define TCPF_CA_Loss (1<<TCP_CA_Loss) 115#define TCPF_CA_Loss (1<<TCP_CA_Loss)
117}; 116};
118 117
119struct tcp_info 118struct tcp_info {
120{
121 __u8 tcpi_state; 119 __u8 tcpi_state;
122 __u8 tcpi_ca_state; 120 __u8 tcpi_ca_state;
123 __u8 tcpi_retransmits; 121 __u8 tcpi_retransmits;
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 660a9de96f81..2aac8a83e89b 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -36,7 +36,7 @@ struct tracepoint {
36#ifndef DECLARE_TRACE 36#ifndef DECLARE_TRACE
37 37
38#define TP_PROTO(args...) args 38#define TP_PROTO(args...) args
39#define TP_ARGS(args...) args 39#define TP_ARGS(args...) args
40 40
41#ifdef CONFIG_TRACEPOINTS 41#ifdef CONFIG_TRACEPOINTS
42 42
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index 3566129384a4..b08677982525 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -45,8 +45,16 @@
45 * 45 *
46 * void (*shutdown)(struct tty_struct * tty); 46 * void (*shutdown)(struct tty_struct * tty);
47 * 47 *
48 * This routine is called when a particular tty device is closed for 48 * This routine is called synchronously when a particular tty device
49 * the last time freeing up the resources. 49 * is closed for the last time freeing up the resources.
50 *
51 *
52 * void (*cleanup)(struct tty_struct * tty);
53 *
54 * This routine is called asynchronously when a particular tty device
55 * is closed for the last time freeing up the resources. This is
56 * actually the second part of shutdown for routines that might sleep.
57 *
50 * 58 *
51 * int (*write)(struct tty_struct * tty, 59 * int (*write)(struct tty_struct * tty,
52 * const unsigned char *buf, int count); 60 * const unsigned char *buf, int count);
@@ -233,6 +241,7 @@ struct tty_operations {
233 int (*open)(struct tty_struct * tty, struct file * filp); 241 int (*open)(struct tty_struct * tty, struct file * filp);
234 void (*close)(struct tty_struct * tty, struct file * filp); 242 void (*close)(struct tty_struct * tty, struct file * filp);
235 void (*shutdown)(struct tty_struct *tty); 243 void (*shutdown)(struct tty_struct *tty);
244 void (*cleanup)(struct tty_struct *tty);
236 int (*write)(struct tty_struct * tty, 245 int (*write)(struct tty_struct * tty,
237 const unsigned char *buf, int count); 246 const unsigned char *buf, int count);
238 int (*put_char)(struct tty_struct *tty, unsigned char ch); 247 int (*put_char)(struct tty_struct *tty, unsigned char ch);
diff --git a/include/linux/udp.h b/include/linux/udp.h
index 0cf5c4c0ec81..832361e3e596 100644
--- a/include/linux/udp.h
+++ b/include/linux/udp.h
@@ -45,11 +45,11 @@ static inline struct udphdr *udp_hdr(const struct sk_buff *skb)
45 return (struct udphdr *)skb_transport_header(skb); 45 return (struct udphdr *)skb_transport_header(skb);
46} 46}
47 47
48#define UDP_HTABLE_SIZE 128 48#define UDP_HTABLE_SIZE_MIN (CONFIG_BASE_SMALL ? 128 : 256)
49 49
50static inline int udp_hashfn(struct net *net, const unsigned num) 50static inline int udp_hashfn(struct net *net, unsigned num, unsigned mask)
51{ 51{
52 return (num + net_hash_mix(net)) & (UDP_HTABLE_SIZE - 1); 52 return (num + net_hash_mix(net)) & mask;
53} 53}
54 54
55struct udp_sock { 55struct udp_sock {
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index f81473052059..86c31b753266 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -90,6 +90,7 @@ struct driver_info {
90#define FLAG_WLAN 0x0080 /* use "wlan%d" names */ 90#define FLAG_WLAN 0x0080 /* use "wlan%d" names */
91#define FLAG_AVOID_UNLINK_URBS 0x0100 /* don't unlink urbs at usbnet_stop() */ 91#define FLAG_AVOID_UNLINK_URBS 0x0100 /* don't unlink urbs at usbnet_stop() */
92#define FLAG_SEND_ZLP 0x0200 /* hw requires ZLPs are sent */ 92#define FLAG_SEND_ZLP 0x0200 /* hw requires ZLPs are sent */
93#define FLAG_WWAN 0x0400 /* use "wwan%d" names */
93 94
94 95
95 /* init device ... can sleep, or cause probe() failure */ 96 /* init device ... can sleep, or cause probe() failure */
diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h
index 2d4ec15abaca..3246f0e66bcc 100644
--- a/include/linux/xfrm.h
+++ b/include/linux/xfrm.h
@@ -10,8 +10,7 @@
10/* Structure to encapsulate addresses. I do not want to use 10/* Structure to encapsulate addresses. I do not want to use
11 * "standard" structure. My apologies. 11 * "standard" structure. My apologies.
12 */ 12 */
13typedef union 13typedef union {
14{
15 __be32 a4; 14 __be32 a4;
16 __be32 a6[4]; 15 __be32 a6[4];
17} xfrm_address_t; 16} xfrm_address_t;
@@ -20,8 +19,7 @@ typedef union
20 * the state by (spi,daddr,ah/esp) or to store information about 19 * the state by (spi,daddr,ah/esp) or to store information about
21 * spi, protocol and tunnel address on output. 20 * spi, protocol and tunnel address on output.
22 */ 21 */
23struct xfrm_id 22struct xfrm_id {
24{
25 xfrm_address_t daddr; 23 xfrm_address_t daddr;
26 __be32 spi; 24 __be32 spi;
27 __u8 proto; 25 __u8 proto;
@@ -45,8 +43,7 @@ struct xfrm_sec_ctx {
45 43
46/* Selector, used as selector both on policy rules (SPD) and SAs. */ 44/* Selector, used as selector both on policy rules (SPD) and SAs. */
47 45
48struct xfrm_selector 46struct xfrm_selector {
49{
50 xfrm_address_t daddr; 47 xfrm_address_t daddr;
51 xfrm_address_t saddr; 48 xfrm_address_t saddr;
52 __be16 dport; 49 __be16 dport;
@@ -63,8 +60,7 @@ struct xfrm_selector
63 60
64#define XFRM_INF (~(__u64)0) 61#define XFRM_INF (~(__u64)0)
65 62
66struct xfrm_lifetime_cfg 63struct xfrm_lifetime_cfg {
67{
68 __u64 soft_byte_limit; 64 __u64 soft_byte_limit;
69 __u64 hard_byte_limit; 65 __u64 hard_byte_limit;
70 __u64 soft_packet_limit; 66 __u64 soft_packet_limit;
@@ -75,16 +71,14 @@ struct xfrm_lifetime_cfg
75 __u64 hard_use_expires_seconds; 71 __u64 hard_use_expires_seconds;
76}; 72};
77 73
78struct xfrm_lifetime_cur 74struct xfrm_lifetime_cur {
79{
80 __u64 bytes; 75 __u64 bytes;
81 __u64 packets; 76 __u64 packets;
82 __u64 add_time; 77 __u64 add_time;
83 __u64 use_time; 78 __u64 use_time;
84}; 79};
85 80
86struct xfrm_replay_state 81struct xfrm_replay_state {
87{
88 __u32 oseq; 82 __u32 oseq;
89 __u32 seq; 83 __u32 seq;
90 __u32 bitmap; 84 __u32 bitmap;
@@ -109,16 +103,14 @@ struct xfrm_stats {
109 __u32 integrity_failed; 103 __u32 integrity_failed;
110}; 104};
111 105
112enum 106enum {
113{
114 XFRM_POLICY_TYPE_MAIN = 0, 107 XFRM_POLICY_TYPE_MAIN = 0,
115 XFRM_POLICY_TYPE_SUB = 1, 108 XFRM_POLICY_TYPE_SUB = 1,
116 XFRM_POLICY_TYPE_MAX = 2, 109 XFRM_POLICY_TYPE_MAX = 2,
117 XFRM_POLICY_TYPE_ANY = 255 110 XFRM_POLICY_TYPE_ANY = 255
118}; 111};
119 112
120enum 113enum {
121{
122 XFRM_POLICY_IN = 0, 114 XFRM_POLICY_IN = 0,
123 XFRM_POLICY_OUT = 1, 115 XFRM_POLICY_OUT = 1,
124 XFRM_POLICY_FWD = 2, 116 XFRM_POLICY_FWD = 2,
@@ -126,8 +118,7 @@ enum
126 XFRM_POLICY_MAX = 3 118 XFRM_POLICY_MAX = 3
127}; 119};
128 120
129enum 121enum {
130{
131 XFRM_SHARE_ANY, /* No limitations */ 122 XFRM_SHARE_ANY, /* No limitations */
132 XFRM_SHARE_SESSION, /* For this session only */ 123 XFRM_SHARE_SESSION, /* For this session only */
133 XFRM_SHARE_USER, /* For this user only */ 124 XFRM_SHARE_USER, /* For this user only */
diff --git a/include/net/ah.h b/include/net/ah.h
index ae1c322f4242..f0129f79a31a 100644
--- a/include/net/ah.h
+++ b/include/net/ah.h
@@ -1,43 +1,20 @@
1#ifndef _NET_AH_H 1#ifndef _NET_AH_H
2#define _NET_AH_H 2#define _NET_AH_H
3 3
4#include <linux/crypto.h> 4#include <linux/skbuff.h>
5#include <net/xfrm.h>
6 5
7/* This is the maximum truncated ICV length that we know of. */ 6/* This is the maximum truncated ICV length that we know of. */
8#define MAX_AH_AUTH_LEN 12 7#define MAX_AH_AUTH_LEN 12
9 8
10struct ah_data 9struct crypto_ahash;
11{ 10
12 u8 *work_icv; 11struct ah_data {
13 int icv_full_len; 12 int icv_full_len;
14 int icv_trunc_len; 13 int icv_trunc_len;
15 14
16 struct crypto_hash *tfm; 15 struct crypto_ahash *ahash;
17}; 16};
18 17
19static inline int ah_mac_digest(struct ah_data *ahp, struct sk_buff *skb,
20 u8 *auth_data)
21{
22 struct hash_desc desc;
23 int err;
24
25 desc.tfm = ahp->tfm;
26 desc.flags = 0;
27
28 memset(auth_data, 0, ahp->icv_trunc_len);
29 err = crypto_hash_init(&desc);
30 if (unlikely(err))
31 goto out;
32 err = skb_icv_walk(skb, &desc, 0, skb->len, crypto_hash_update);
33 if (unlikely(err))
34 goto out;
35 err = crypto_hash_final(&desc, ahp->work_icv);
36
37out:
38 return err;
39}
40
41struct ip_auth_hdr; 18struct ip_auth_hdr;
42 19
43static inline struct ip_auth_hdr *ip_auth_hdr(const struct sk_buff *skb) 20static inline struct ip_auth_hdr *ip_auth_hdr(const struct sk_buff *skb)
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index 718394e2c01e..04a6908e38d2 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -121,7 +121,7 @@ struct bt_sock_list {
121 rwlock_t lock; 121 rwlock_t lock;
122}; 122};
123 123
124int bt_sock_register(int proto, struct net_proto_family *ops); 124int bt_sock_register(int proto, const struct net_proto_family *ops);
125int bt_sock_unregister(int proto); 125int bt_sock_unregister(int proto);
126void bt_sock_link(struct bt_sock_list *l, struct sock *s); 126void bt_sock_link(struct bt_sock_list *l, struct sock *s);
127void bt_sock_unlink(struct bt_sock_list *l, struct sock *s); 127void bt_sock_unlink(struct bt_sock_list *l, struct sock *s);
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 3d874c620219..ff67865de231 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1142,6 +1142,9 @@ struct wiphy {
1142 u32 frag_threshold; 1142 u32 frag_threshold;
1143 u32 rts_threshold; 1143 u32 rts_threshold;
1144 1144
1145 char fw_version[ETHTOOL_BUSINFO_LEN];
1146 u32 hw_version;
1147
1145 /* If multiple wiphys are registered and you're handed e.g. 1148 /* If multiple wiphys are registered and you're handed e.g.
1146 * a regular netdev with assigned ieee80211_ptr, you won't 1149 * a regular netdev with assigned ieee80211_ptr, you won't
1147 * know whether it points to a wiphy your driver has registered 1150 * know whether it points to a wiphy your driver has registered
@@ -1171,6 +1174,10 @@ struct wiphy {
1171 struct net *_net; 1174 struct net *_net;
1172#endif 1175#endif
1173 1176
1177#ifdef CONFIG_CFG80211_WEXT
1178 const struct iw_handler_def *wext;
1179#endif
1180
1174 char priv[0] __attribute__((__aligned__(NETDEV_ALIGN))); 1181 char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
1175}; 1182};
1176 1183
@@ -1345,7 +1352,7 @@ struct wireless_dev {
1345 struct cfg80211_internal_bss *auth_bsses[MAX_AUTH_BSSES]; 1352 struct cfg80211_internal_bss *auth_bsses[MAX_AUTH_BSSES];
1346 struct cfg80211_internal_bss *current_bss; /* associated / joined */ 1353 struct cfg80211_internal_bss *current_bss; /* associated / joined */
1347 1354
1348#ifdef CONFIG_WIRELESS_EXT 1355#ifdef CONFIG_CFG80211_WEXT
1349 /* wext data */ 1356 /* wext data */
1350 struct { 1357 struct {
1351 struct cfg80211_ibss_params ibss; 1358 struct cfg80211_ibss_params ibss;
@@ -1802,30 +1809,45 @@ void cfg80211_send_assoc_timeout(struct net_device *dev, const u8 *addr);
1802 * @dev: network device 1809 * @dev: network device
1803 * @buf: deauthentication frame (header + body) 1810 * @buf: deauthentication frame (header + body)
1804 * @len: length of the frame data 1811 * @len: length of the frame data
1805 * @cookie: cookie from ->deauth if called within that callback,
1806 * %NULL otherwise
1807 * 1812 *
1808 * This function is called whenever deauthentication has been processed in 1813 * This function is called whenever deauthentication has been processed in
1809 * station mode. This includes both received deauthentication frames and 1814 * station mode. This includes both received deauthentication frames and
1810 * locally generated ones. This function may sleep. 1815 * locally generated ones. This function may sleep.
1811 */ 1816 */
1812void cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len, 1817void cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len);
1813 void *cookie); 1818
1819/**
1820 * __cfg80211_send_deauth - notification of processed deauthentication
1821 * @dev: network device
1822 * @buf: deauthentication frame (header + body)
1823 * @len: length of the frame data
1824 *
1825 * Like cfg80211_send_deauth(), but doesn't take the wdev lock.
1826 */
1827void __cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len);
1814 1828
1815/** 1829/**
1816 * cfg80211_send_disassoc - notification of processed disassociation 1830 * cfg80211_send_disassoc - notification of processed disassociation
1817 * @dev: network device 1831 * @dev: network device
1818 * @buf: disassociation response frame (header + body) 1832 * @buf: disassociation response frame (header + body)
1819 * @len: length of the frame data 1833 * @len: length of the frame data
1820 * @cookie: cookie from ->disassoc if called within that callback,
1821 * %NULL otherwise
1822 * 1834 *
1823 * This function is called whenever disassociation has been processed in 1835 * This function is called whenever disassociation has been processed in
1824 * station mode. This includes both received disassociation frames and locally 1836 * station mode. This includes both received disassociation frames and locally
1825 * generated ones. This function may sleep. 1837 * generated ones. This function may sleep.
1826 */ 1838 */
1827void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len, 1839void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len);
1828 void *cookie); 1840
1841/**
1842 * __cfg80211_send_disassoc - notification of processed disassociation
1843 * @dev: network device
1844 * @buf: disassociation response frame (header + body)
1845 * @len: length of the frame data
1846 *
1847 * Like cfg80211_send_disassoc(), but doesn't take the wdev lock.
1848 */
1849void __cfg80211_send_disassoc(struct net_device *dev, const u8 *buf,
1850 size_t len);
1829 1851
1830/** 1852/**
1831 * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP) 1853 * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP)
diff --git a/include/net/compat.h b/include/net/compat.h
index 7c3002832d05..3c7d4e38fa1d 100644
--- a/include/net/compat.h
+++ b/include/net/compat.h
@@ -18,6 +18,11 @@ struct compat_msghdr {
18 compat_uint_t msg_flags; 18 compat_uint_t msg_flags;
19}; 19};
20 20
21struct compat_mmsghdr {
22 struct compat_msghdr msg_hdr;
23 compat_uint_t msg_len;
24};
25
21struct compat_cmsghdr { 26struct compat_cmsghdr {
22 compat_size_t cmsg_len; 27 compat_size_t cmsg_len;
23 compat_int_t cmsg_level; 28 compat_int_t cmsg_level;
@@ -28,13 +33,20 @@ extern int compat_sock_get_timestamp(struct sock *, struct timeval __user *);
28extern int compat_sock_get_timestampns(struct sock *, struct timespec __user *); 33extern int compat_sock_get_timestampns(struct sock *, struct timespec __user *);
29 34
30#else /* defined(CONFIG_COMPAT) */ 35#else /* defined(CONFIG_COMPAT) */
31#define compat_msghdr msghdr /* to avoid compiler warnings */ 36/*
37 * To avoid compiler warnings:
38 */
39#define compat_msghdr msghdr
40#define compat_mmsghdr mmsghdr
32#endif /* defined(CONFIG_COMPAT) */ 41#endif /* defined(CONFIG_COMPAT) */
33 42
34extern int get_compat_msghdr(struct msghdr *, struct compat_msghdr __user *); 43extern int get_compat_msghdr(struct msghdr *, struct compat_msghdr __user *);
35extern int verify_compat_iovec(struct msghdr *, struct iovec *, struct sockaddr *, int); 44extern int verify_compat_iovec(struct msghdr *, struct iovec *, struct sockaddr *, int);
36extern asmlinkage long compat_sys_sendmsg(int,struct compat_msghdr __user *,unsigned); 45extern asmlinkage long compat_sys_sendmsg(int,struct compat_msghdr __user *,unsigned);
37extern asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned); 46extern asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned);
47extern asmlinkage long compat_sys_recvmmsg(int, struct compat_mmsghdr __user *,
48 unsigned, unsigned,
49 struct timespec __user *);
38extern asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *); 50extern asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *);
39extern int put_cmsg_compat(struct msghdr*, int, int, int, void *); 51extern int put_cmsg_compat(struct msghdr*, int, int, int, void *);
40 52
diff --git a/include/net/dn_dev.h b/include/net/dn_dev.h
index cee46821dc53..28966cae3fd7 100644
--- a/include/net/dn_dev.h
+++ b/include/net/dn_dev.h
@@ -97,16 +97,14 @@ struct dn_dev {
97 unsigned long uptime; /* Time device went up in jiffies */ 97 unsigned long uptime; /* Time device went up in jiffies */
98}; 98};
99 99
100struct dn_short_packet 100struct dn_short_packet {
101{
102 __u8 msgflg; 101 __u8 msgflg;
103 __le16 dstnode; 102 __le16 dstnode;
104 __le16 srcnode; 103 __le16 srcnode;
105 __u8 forward; 104 __u8 forward;
106} __attribute__((packed)); 105} __attribute__((packed));
107 106
108struct dn_long_packet 107struct dn_long_packet {
109{
110 __u8 msgflg; 108 __u8 msgflg;
111 __u8 d_area; 109 __u8 d_area;
112 __u8 d_subarea; 110 __u8 d_subarea;
@@ -122,8 +120,7 @@ struct dn_long_packet
122 120
123/*------------------------- DRP - Routing messages ---------------------*/ 121/*------------------------- DRP - Routing messages ---------------------*/
124 122
125struct endnode_hello_message 123struct endnode_hello_message {
126{
127 __u8 msgflg; 124 __u8 msgflg;
128 __u8 tiver[3]; 125 __u8 tiver[3];
129 __u8 id[6]; 126 __u8 id[6];
@@ -138,8 +135,7 @@ struct endnode_hello_message
138 __u8 data[2]; 135 __u8 data[2];
139} __attribute__((packed)); 136} __attribute__((packed));
140 137
141struct rtnode_hello_message 138struct rtnode_hello_message {
142{
143 __u8 msgflg; 139 __u8 msgflg;
144 __u8 tiver[3]; 140 __u8 tiver[3];
145 __u8 id[6]; 141 __u8 id[6];
diff --git a/include/net/dn_fib.h b/include/net/dn_fib.h
index c378be7bf960..52da6c3dd50d 100644
--- a/include/net/dn_fib.h
+++ b/include/net/dn_fib.h
@@ -4,8 +4,7 @@
4/* WARNING: The ordering of these elements must match ordering 4/* WARNING: The ordering of these elements must match ordering
5 * of RTA_* rtnetlink attribute numbers. 5 * of RTA_* rtnetlink attribute numbers.
6 */ 6 */
7struct dn_kern_rta 7struct dn_kern_rta {
8{
9 void *rta_dst; 8 void *rta_dst;
10 void *rta_src; 9 void *rta_src;
11 int *rta_iif; 10 int *rta_iif;
diff --git a/include/net/dn_nsp.h b/include/net/dn_nsp.h
index 96e816b6974d..17d43d2db5ec 100644
--- a/include/net/dn_nsp.h
+++ b/include/net/dn_nsp.h
@@ -70,30 +70,26 @@ extern struct sk_buff *dn_alloc_send_skb(struct sock *sk, size_t *size, int nobl
70 70
71/* Data Messages (data segment/interrupt/link service) */ 71/* Data Messages (data segment/interrupt/link service) */
72 72
73struct nsp_data_seg_msg 73struct nsp_data_seg_msg {
74{
75 __u8 msgflg; 74 __u8 msgflg;
76 __le16 dstaddr; 75 __le16 dstaddr;
77 __le16 srcaddr; 76 __le16 srcaddr;
78} __attribute__((packed)); 77} __attribute__((packed));
79 78
80struct nsp_data_opt_msg 79struct nsp_data_opt_msg {
81{
82 __le16 acknum; 80 __le16 acknum;
83 __le16 segnum; 81 __le16 segnum;
84 __le16 lsflgs; 82 __le16 lsflgs;
85} __attribute__((packed)); 83} __attribute__((packed));
86 84
87struct nsp_data_opt_msg1 85struct nsp_data_opt_msg1 {
88{
89 __le16 acknum; 86 __le16 acknum;
90 __le16 segnum; 87 __le16 segnum;
91} __attribute__((packed)); 88} __attribute__((packed));
92 89
93 90
94/* Acknowledgment Message (data/other data) */ 91/* Acknowledgment Message (data/other data) */
95struct nsp_data_ack_msg 92struct nsp_data_ack_msg {
96{
97 __u8 msgflg; 93 __u8 msgflg;
98 __le16 dstaddr; 94 __le16 dstaddr;
99 __le16 srcaddr; 95 __le16 srcaddr;
@@ -101,16 +97,14 @@ struct nsp_data_ack_msg
101} __attribute__((packed)); 97} __attribute__((packed));
102 98
103/* Connect Acknowledgment Message */ 99/* Connect Acknowledgment Message */
104struct nsp_conn_ack_msg 100struct nsp_conn_ack_msg {
105{
106 __u8 msgflg; 101 __u8 msgflg;
107 __le16 dstaddr; 102 __le16 dstaddr;
108} __attribute__((packed)); 103} __attribute__((packed));
109 104
110 105
111/* Connect Initiate/Retransmit Initiate/Connect Confirm */ 106/* Connect Initiate/Retransmit Initiate/Connect Confirm */
112struct nsp_conn_init_msg 107struct nsp_conn_init_msg {
113{
114 __u8 msgflg; 108 __u8 msgflg;
115#define NSP_CI 0x18 /* Connect Initiate */ 109#define NSP_CI 0x18 /* Connect Initiate */
116#define NSP_RCI 0x68 /* Retrans. Conn Init */ 110#define NSP_RCI 0x68 /* Retrans. Conn Init */
@@ -126,8 +120,7 @@ struct nsp_conn_init_msg
126} __attribute__((packed)); 120} __attribute__((packed));
127 121
128/* Disconnect Initiate/Disconnect Confirm */ 122/* Disconnect Initiate/Disconnect Confirm */
129struct nsp_disconn_init_msg 123struct nsp_disconn_init_msg {
130{
131 __u8 msgflg; 124 __u8 msgflg;
132 __le16 dstaddr; 125 __le16 dstaddr;
133 __le16 srcaddr; 126 __le16 srcaddr;
@@ -136,8 +129,7 @@ struct nsp_disconn_init_msg
136 129
137 130
138 131
139struct srcobj_fmt 132struct srcobj_fmt {
140{
141 __u8 format; 133 __u8 format;
142 __u8 task; 134 __u8 task;
143 __le16 grpcode; 135 __le16 grpcode;
diff --git a/include/net/dst.h b/include/net/dst.h
index 5a900ddcf10d..387cb3cfde7e 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -36,8 +36,7 @@
36 36
37struct sk_buff; 37struct sk_buff;
38 38
39struct dst_entry 39struct dst_entry {
40{
41 struct rcu_head rcu_head; 40 struct rcu_head rcu_head;
42 struct dst_entry *child; 41 struct dst_entry *child;
43 struct net_device *dev; 42 struct net_device *dev;
@@ -111,6 +110,12 @@ dst_metric(const struct dst_entry *dst, int metric)
111 return dst->metrics[metric-1]; 110 return dst->metrics[metric-1];
112} 111}
113 112
113static inline u32
114dst_feature(const struct dst_entry *dst, u32 feature)
115{
116 return (dst ? dst_metric(dst, RTAX_FEATURES) & feature : 0);
117}
118
114static inline u32 dst_mtu(const struct dst_entry *dst) 119static inline u32 dst_mtu(const struct dst_entry *dst)
115{ 120{
116 u32 mtu = dst_metric(dst, RTAX_MTU); 121 u32 mtu = dst_metric(dst, RTAX_MTU);
@@ -136,7 +141,7 @@ static inline void set_dst_metric_rtt(struct dst_entry *dst, int metric,
136static inline u32 141static inline u32
137dst_allfrag(const struct dst_entry *dst) 142dst_allfrag(const struct dst_entry *dst)
138{ 143{
139 int ret = dst_metric(dst, RTAX_FEATURES) & RTAX_FEATURE_ALLFRAG; 144 int ret = dst_feature(dst, RTAX_FEATURE_ALLFRAG);
140 /* Yes, _exactly_. This is paranoia. */ 145 /* Yes, _exactly_. This is paranoia. */
141 barrier(); 146 barrier();
142 return ret; 147 return ret;
@@ -222,11 +227,19 @@ static inline void dst_confirm(struct dst_entry *dst)
222 neigh_confirm(dst->neighbour); 227 neigh_confirm(dst->neighbour);
223} 228}
224 229
225static inline void dst_negative_advice(struct dst_entry **dst_p) 230static inline void dst_negative_advice(struct dst_entry **dst_p,
231 struct sock *sk)
226{ 232{
227 struct dst_entry * dst = *dst_p; 233 struct dst_entry * dst = *dst_p;
228 if (dst && dst->ops->negative_advice) 234 if (dst && dst->ops->negative_advice) {
229 *dst_p = dst->ops->negative_advice(dst); 235 *dst_p = dst->ops->negative_advice(dst);
236
237 if (dst != *dst_p) {
238 extern void sk_reset_txq(struct sock *sk);
239
240 sk_reset_txq(sk);
241 }
242 }
230} 243}
231 244
232static inline void dst_link_failure(struct sk_buff *skb) 245static inline void dst_link_failure(struct sk_buff *skb)
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h
index ca4b2e840078..2cd707b15d59 100644
--- a/include/net/fib_rules.h
+++ b/include/net/fib_rules.h
@@ -7,8 +7,7 @@
7#include <net/flow.h> 7#include <net/flow.h>
8#include <net/rtnetlink.h> 8#include <net/rtnetlink.h>
9 9
10struct fib_rule 10struct fib_rule {
11{
12 struct list_head list; 11 struct list_head list;
13 atomic_t refcnt; 12 atomic_t refcnt;
14 int ifindex; 13 int ifindex;
@@ -25,15 +24,13 @@ struct fib_rule
25 struct net * fr_net; 24 struct net * fr_net;
26}; 25};
27 26
28struct fib_lookup_arg 27struct fib_lookup_arg {
29{
30 void *lookup_ptr; 28 void *lookup_ptr;
31 void *result; 29 void *result;
32 struct fib_rule *rule; 30 struct fib_rule *rule;
33}; 31};
34 32
35struct fib_rules_ops 33struct fib_rules_ops {
36{
37 int family; 34 int family;
38 struct list_head list; 35 struct list_head list;
39 int rule_size; 36 int rule_size;
diff --git a/include/net/gen_stats.h b/include/net/gen_stats.h
index c1488553e349..fa157712e982 100644
--- a/include/net/gen_stats.h
+++ b/include/net/gen_stats.h
@@ -6,8 +6,7 @@
6#include <linux/rtnetlink.h> 6#include <linux/rtnetlink.h>
7#include <linux/pkt_sched.h> 7#include <linux/pkt_sched.h>
8 8
9struct gnet_dump 9struct gnet_dump {
10{
11 spinlock_t * lock; 10 spinlock_t * lock;
12 struct sk_buff * skb; 11 struct sk_buff * skb;
13 struct nlattr * tail; 12 struct nlattr * tail;
@@ -30,6 +29,7 @@ extern int gnet_stats_start_copy_compat(struct sk_buff *skb, int type,
30extern int gnet_stats_copy_basic(struct gnet_dump *d, 29extern int gnet_stats_copy_basic(struct gnet_dump *d,
31 struct gnet_stats_basic_packed *b); 30 struct gnet_stats_basic_packed *b);
32extern int gnet_stats_copy_rate_est(struct gnet_dump *d, 31extern int gnet_stats_copy_rate_est(struct gnet_dump *d,
32 const struct gnet_stats_basic_packed *b,
33 struct gnet_stats_rate_est *r); 33 struct gnet_stats_rate_est *r);
34extern int gnet_stats_copy_queue(struct gnet_dump *d, 34extern int gnet_stats_copy_queue(struct gnet_dump *d,
35 struct gnet_stats_queue *q); 35 struct gnet_stats_queue *q);
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index 2a1c06874c42..eb551baafc04 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -13,8 +13,7 @@
13 * @list: list entry for linking 13 * @list: list entry for linking
14 * @family: pointer to family, need not be set before registering 14 * @family: pointer to family, need not be set before registering
15 */ 15 */
16struct genl_multicast_group 16struct genl_multicast_group {
17{
18 struct genl_family *family; /* private */ 17 struct genl_family *family; /* private */
19 struct list_head list; /* private */ 18 struct list_head list; /* private */
20 char name[GENL_NAMSIZ]; 19 char name[GENL_NAMSIZ];
@@ -35,8 +34,7 @@ struct genl_multicast_group
35 * @family_list: family list 34 * @family_list: family list
36 * @mcast_groups: multicast groups list 35 * @mcast_groups: multicast groups list
37 */ 36 */
38struct genl_family 37struct genl_family {
39{
40 unsigned int id; 38 unsigned int id;
41 unsigned int hdrsize; 39 unsigned int hdrsize;
42 char name[GENL_NAMSIZ]; 40 char name[GENL_NAMSIZ];
@@ -58,8 +56,7 @@ struct genl_family
58 * @userhdr: user specific header 56 * @userhdr: user specific header
59 * @attrs: netlink attributes 57 * @attrs: netlink attributes
60 */ 58 */
61struct genl_info 59struct genl_info {
62{
63 u32 snd_seq; 60 u32 snd_seq;
64 u32 snd_pid; 61 u32 snd_pid;
65 struct nlmsghdr * nlhdr; 62 struct nlmsghdr * nlhdr;
@@ -102,8 +99,7 @@ static inline void genl_info_net_set(struct genl_info *info, struct net *net)
102 * @done: completion callback for dumps 99 * @done: completion callback for dumps
103 * @ops_list: operations list 100 * @ops_list: operations list
104 */ 101 */
105struct genl_ops 102struct genl_ops {
106{
107 u8 cmd; 103 u8 cmd;
108 unsigned int flags; 104 unsigned int flags;
109 const struct nla_policy *policy; 105 const struct nla_policy *policy;
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h
index 38b78132019b..e9d69d198495 100644
--- a/include/net/if_inet6.h
+++ b/include/net/if_inet6.h
@@ -32,8 +32,7 @@
32 32
33#ifdef __KERNEL__ 33#ifdef __KERNEL__
34 34
35struct inet6_ifaddr 35struct inet6_ifaddr {
36{
37 struct in6_addr addr; 36 struct in6_addr addr;
38 __u32 prefix_len; 37 __u32 prefix_len;
39 38
@@ -67,8 +66,7 @@ struct inet6_ifaddr
67 int dead; 66 int dead;
68}; 67};
69 68
70struct ip6_sf_socklist 69struct ip6_sf_socklist {
71{
72 unsigned int sl_max; 70 unsigned int sl_max;
73 unsigned int sl_count; 71 unsigned int sl_count;
74 struct in6_addr sl_addr[0]; 72 struct in6_addr sl_addr[0];
@@ -79,8 +77,7 @@ struct ip6_sf_socklist
79 77
80#define IP6_SFBLOCK 10 /* allocate this many at once */ 78#define IP6_SFBLOCK 10 /* allocate this many at once */
81 79
82struct ipv6_mc_socklist 80struct ipv6_mc_socklist {
83{
84 struct in6_addr addr; 81 struct in6_addr addr;
85 int ifindex; 82 int ifindex;
86 struct ipv6_mc_socklist *next; 83 struct ipv6_mc_socklist *next;
@@ -89,8 +86,7 @@ struct ipv6_mc_socklist
89 struct ip6_sf_socklist *sflist; 86 struct ip6_sf_socklist *sflist;
90}; 87};
91 88
92struct ip6_sf_list 89struct ip6_sf_list {
93{
94 struct ip6_sf_list *sf_next; 90 struct ip6_sf_list *sf_next;
95 struct in6_addr sf_addr; 91 struct in6_addr sf_addr;
96 unsigned long sf_count[2]; /* include/exclude counts */ 92 unsigned long sf_count[2]; /* include/exclude counts */
@@ -105,8 +101,7 @@ struct ip6_sf_list
105#define MAF_NOREPORT 0x08 101#define MAF_NOREPORT 0x08
106#define MAF_GSQUERY 0x10 102#define MAF_GSQUERY 0x10
107 103
108struct ifmcaddr6 104struct ifmcaddr6 {
109{
110 struct in6_addr mca_addr; 105 struct in6_addr mca_addr;
111 struct inet6_dev *idev; 106 struct inet6_dev *idev;
112 struct ifmcaddr6 *next; 107 struct ifmcaddr6 *next;
@@ -126,15 +121,13 @@ struct ifmcaddr6
126 121
127/* Anycast stuff */ 122/* Anycast stuff */
128 123
129struct ipv6_ac_socklist 124struct ipv6_ac_socklist {
130{
131 struct in6_addr acl_addr; 125 struct in6_addr acl_addr;
132 int acl_ifindex; 126 int acl_ifindex;
133 struct ipv6_ac_socklist *acl_next; 127 struct ipv6_ac_socklist *acl_next;
134}; 128};
135 129
136struct ifacaddr6 130struct ifacaddr6 {
137{
138 struct in6_addr aca_addr; 131 struct in6_addr aca_addr;
139 struct inet6_dev *aca_idev; 132 struct inet6_dev *aca_idev;
140 struct rt6_info *aca_rt; 133 struct rt6_info *aca_rt;
@@ -157,8 +150,7 @@ struct ipv6_devstat {
157 DEFINE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg); 150 DEFINE_SNMP_STAT(struct icmpv6msg_mib, icmpv6msg);
158}; 151};
159 152
160struct inet6_dev 153struct inet6_dev {
161{
162 struct net_device *dev; 154 struct net_device *dev;
163 155
164 struct inet6_ifaddr *addr_list; 156 struct inet6_ifaddr *addr_list;
diff --git a/include/net/inet6_hashtables.h b/include/net/inet6_hashtables.h
index 22c73a77cd99..92838d3a1ab7 100644
--- a/include/net/inet6_hashtables.h
+++ b/include/net/inet6_hashtables.h
@@ -46,8 +46,8 @@ static inline int inet6_sk_ehashfn(const struct sock *sk)
46 const struct ipv6_pinfo *np = inet6_sk(sk); 46 const struct ipv6_pinfo *np = inet6_sk(sk);
47 const struct in6_addr *laddr = &np->rcv_saddr; 47 const struct in6_addr *laddr = &np->rcv_saddr;
48 const struct in6_addr *faddr = &np->daddr; 48 const struct in6_addr *faddr = &np->daddr;
49 const __u16 lport = inet->num; 49 const __u16 lport = inet->inet_num;
50 const __be16 fport = inet->dport; 50 const __be16 fport = inet->inet_dport;
51 struct net *net = sock_net(sk); 51 struct net *net = sock_net(sk);
52 52
53 return inet6_ehashfn(net, laddr, lport, faddr, fport); 53 return inet6_ehashfn(net, laddr, lport, faddr, fport);
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h
index d522dcf3031a..5b698b3b463d 100644
--- a/include/net/inet_hashtables.h
+++ b/include/net/inet_hashtables.h
@@ -125,7 +125,7 @@ struct inet_hashinfo {
125 */ 125 */
126 struct inet_ehash_bucket *ehash; 126 struct inet_ehash_bucket *ehash;
127 spinlock_t *ehash_locks; 127 spinlock_t *ehash_locks;
128 unsigned int ehash_size; 128 unsigned int ehash_mask;
129 unsigned int ehash_locks_mask; 129 unsigned int ehash_locks_mask;
130 130
131 /* Ok, let's try this, I give up, we do need a local binding 131 /* Ok, let's try this, I give up, we do need a local binding
@@ -158,7 +158,7 @@ static inline struct inet_ehash_bucket *inet_ehash_bucket(
158 struct inet_hashinfo *hashinfo, 158 struct inet_hashinfo *hashinfo,
159 unsigned int hash) 159 unsigned int hash)
160{ 160{
161 return &hashinfo->ehash[hash & (hashinfo->ehash_size - 1)]; 161 return &hashinfo->ehash[hash & hashinfo->ehash_mask];
162} 162}
163 163
164static inline spinlock_t *inet_ehash_lockp( 164static inline spinlock_t *inet_ehash_lockp(
@@ -241,7 +241,7 @@ static inline int inet_lhashfn(struct net *net, const unsigned short num)
241 241
242static inline int inet_sk_listen_hashfn(const struct sock *sk) 242static inline int inet_sk_listen_hashfn(const struct sock *sk)
243{ 243{
244 return inet_lhashfn(sock_net(sk), inet_sk(sk)->num); 244 return inet_lhashfn(sock_net(sk), inet_sk(sk)->inet_num);
245} 245}
246 246
247/* Caller must disable local BH processing. */ 247/* Caller must disable local BH processing. */
@@ -301,8 +301,8 @@ typedef __u64 __bitwise __addrpair;
301#endif /* __BIG_ENDIAN */ 301#endif /* __BIG_ENDIAN */
302#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ 302#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
303 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \ 303 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
304 ((*((__addrpair *)&(inet_sk(__sk)->daddr))) == (__cookie)) && \ 304 ((*((__addrpair *)&(inet_sk(__sk)->inet_daddr))) == (__cookie)) && \
305 ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ 305 ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
306 (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) 306 (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
307#define INET_TW_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ 307#define INET_TW_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
308 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \ 308 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
@@ -313,9 +313,9 @@ typedef __u64 __bitwise __addrpair;
313#define INET_ADDR_COOKIE(__name, __saddr, __daddr) 313#define INET_ADDR_COOKIE(__name, __saddr, __daddr)
314#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif) \ 314#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif) \
315 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \ 315 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
316 (inet_sk(__sk)->daddr == (__saddr)) && \ 316 (inet_sk(__sk)->inet_daddr == (__saddr)) && \
317 (inet_sk(__sk)->rcv_saddr == (__daddr)) && \ 317 (inet_sk(__sk)->inet_rcv_saddr == (__daddr)) && \
318 ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ 318 ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
319 (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) 319 (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
320#define INET_TW_MATCH(__sk, __net, __hash,__cookie, __saddr, __daddr, __ports, __dif) \ 320#define INET_TW_MATCH(__sk, __net, __hash,__cookie, __saddr, __daddr, __ports, __dif) \
321 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \ 321 (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index 47004f35cc7e..bd4c53f75ac0 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -93,14 +93,14 @@ struct rtable;
93 * 93 *
94 * @sk - ancestor class 94 * @sk - ancestor class
95 * @pinet6 - pointer to IPv6 control block 95 * @pinet6 - pointer to IPv6 control block
96 * @daddr - Foreign IPv4 addr 96 * @inet_daddr - Foreign IPv4 addr
97 * @rcv_saddr - Bound local IPv4 addr 97 * @inet_rcv_saddr - Bound local IPv4 addr
98 * @dport - Destination port 98 * @inet_dport - Destination port
99 * @num - Local port 99 * @inet_num - Local port
100 * @saddr - Sending source 100 * @inet_saddr - Sending source
101 * @uc_ttl - Unicast TTL 101 * @uc_ttl - Unicast TTL
102 * @sport - Source port 102 * @inet_sport - Source port
103 * @id - ID counter for DF pkts 103 * @inet_id - ID counter for DF pkts
104 * @tos - TOS 104 * @tos - TOS
105 * @mc_ttl - Multicasting TTL 105 * @mc_ttl - Multicasting TTL
106 * @is_icsk - is this an inet_connection_sock? 106 * @is_icsk - is this an inet_connection_sock?
@@ -115,16 +115,16 @@ struct inet_sock {
115 struct ipv6_pinfo *pinet6; 115 struct ipv6_pinfo *pinet6;
116#endif 116#endif
117 /* Socket demultiplex comparisons on incoming packets. */ 117 /* Socket demultiplex comparisons on incoming packets. */
118 __be32 daddr; 118 __be32 inet_daddr;
119 __be32 rcv_saddr; 119 __be32 inet_rcv_saddr;
120 __be16 dport; 120 __be16 inet_dport;
121 __u16 num; 121 __u16 inet_num;
122 __be32 saddr; 122 __be32 inet_saddr;
123 __s16 uc_ttl; 123 __s16 uc_ttl;
124 __u16 cmsg_flags; 124 __u16 cmsg_flags;
125 struct ip_options *opt; 125 struct ip_options *opt;
126 __be16 sport; 126 __be16 inet_sport;
127 __u16 id; 127 __u16 inet_id;
128 __u8 tos; 128 __u8 tos;
129 __u8 mc_ttl; 129 __u8 mc_ttl;
130 __u8 pmtudisc; 130 __u8 pmtudisc;
@@ -190,10 +190,10 @@ static inline unsigned int inet_ehashfn(struct net *net,
190static inline int inet_sk_ehashfn(const struct sock *sk) 190static inline int inet_sk_ehashfn(const struct sock *sk)
191{ 191{
192 const struct inet_sock *inet = inet_sk(sk); 192 const struct inet_sock *inet = inet_sk(sk);
193 const __be32 laddr = inet->rcv_saddr; 193 const __be32 laddr = inet->inet_rcv_saddr;
194 const __u16 lport = inet->num; 194 const __u16 lport = inet->inet_num;
195 const __be32 faddr = inet->daddr; 195 const __be32 faddr = inet->inet_daddr;
196 const __be16 fport = inet->dport; 196 const __be16 fport = inet->inet_dport;
197 struct net *net = sock_net(sk); 197 struct net *net = sock_net(sk);
198 198
199 return inet_ehashfn(net, laddr, lport, faddr, fport); 199 return inet_ehashfn(net, laddr, lport, faddr, fport);
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index f93ad90a601b..773b10fa38e4 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -194,7 +194,7 @@ static inline struct inet_timewait_sock *inet_twsk(const struct sock *sk)
194static inline __be32 inet_rcv_saddr(const struct sock *sk) 194static inline __be32 inet_rcv_saddr(const struct sock *sk)
195{ 195{
196 return likely(sk->sk_state != TCP_TIME_WAIT) ? 196 return likely(sk->sk_state != TCP_TIME_WAIT) ?
197 inet_sk(sk)->rcv_saddr : inet_twsk(sk)->tw_rcv_saddr; 197 inet_sk(sk)->inet_rcv_saddr : inet_twsk(sk)->tw_rcv_saddr;
198} 198}
199 199
200extern void inet_twsk_put(struct inet_timewait_sock *tw); 200extern void inet_twsk_put(struct inet_timewait_sock *tw);
diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
index 15e1f8fe4c1f..35ad7b930467 100644
--- a/include/net/inetpeer.h
+++ b/include/net/inetpeer.h
@@ -13,8 +13,7 @@
13#include <linux/spinlock.h> 13#include <linux/spinlock.h>
14#include <asm/atomic.h> 14#include <asm/atomic.h>
15 15
16struct inet_peer 16struct inet_peer {
17{
18 /* group together avl_left,avl_right,v4daddr to speedup lookups */ 17 /* group together avl_left,avl_right,v4daddr to speedup lookups */
19 struct inet_peer *avl_left, *avl_right; 18 struct inet_peer *avl_left, *avl_right;
20 __be32 v4daddr; /* peer's address */ 19 __be32 v4daddr; /* peer's address */
diff --git a/include/net/ip.h b/include/net/ip.h
index 2f47e5482b55..e6b9d12d5f62 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -33,8 +33,7 @@
33 33
34struct sock; 34struct sock;
35 35
36struct inet_skb_parm 36struct inet_skb_parm {
37{
38 struct ip_options opt; /* Compiled IP options */ 37 struct ip_options opt; /* Compiled IP options */
39 unsigned char flags; 38 unsigned char flags;
40 39
@@ -50,8 +49,7 @@ static inline unsigned int ip_hdrlen(const struct sk_buff *skb)
50 return ip_hdr(skb)->ihl * 4; 49 return ip_hdr(skb)->ihl * 4;
51} 50}
52 51
53struct ipcm_cookie 52struct ipcm_cookie {
54{
55 __be32 addr; 53 __be32 addr;
56 int oif; 54 int oif;
57 struct ip_options *opt; 55 struct ip_options *opt;
@@ -60,8 +58,7 @@ struct ipcm_cookie
60 58
61#define IPCB(skb) ((struct inet_skb_parm*)((skb)->cb)) 59#define IPCB(skb) ((struct inet_skb_parm*)((skb)->cb))
62 60
63struct ip_ra_chain 61struct ip_ra_chain {
64{
65 struct ip_ra_chain *next; 62 struct ip_ra_chain *next;
66 struct sock *sk; 63 struct sock *sk;
67 void (*destructor)(struct sock *); 64 void (*destructor)(struct sock *);
@@ -159,8 +156,7 @@ static inline __u8 ip_reply_arg_flowi_flags(const struct ip_reply_arg *arg)
159void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg, 156void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *arg,
160 unsigned int len); 157 unsigned int len);
161 158
162struct ipv4_config 159struct ipv4_config {
163{
164 int log_martians; 160 int log_martians;
165 int no_pmtu_disc; 161 int no_pmtu_disc;
166}; 162};
@@ -240,8 +236,8 @@ static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, str
240 * does not change, they drop every other packet in 236 * does not change, they drop every other packet in
241 * a TCP stream using header compression. 237 * a TCP stream using header compression.
242 */ 238 */
243 iph->id = (sk && inet_sk(sk)->daddr) ? 239 iph->id = (sk && inet_sk(sk)->inet_daddr) ?
244 htons(inet_sk(sk)->id++) : 0; 240 htons(inet_sk(sk)->inet_id++) : 0;
245 } else 241 } else
246 __ip_select_ident(iph, dst, 0); 242 __ip_select_ident(iph, dst, 0);
247} 243}
@@ -249,9 +245,9 @@ static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, str
249static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst, struct sock *sk, int more) 245static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst, struct sock *sk, int more)
250{ 246{
251 if (iph->frag_off & htons(IP_DF)) { 247 if (iph->frag_off & htons(IP_DF)) {
252 if (sk && inet_sk(sk)->daddr) { 248 if (sk && inet_sk(sk)->inet_daddr) {
253 iph->id = htons(inet_sk(sk)->id); 249 iph->id = htons(inet_sk(sk)->inet_id);
254 inet_sk(sk)->id += 1 + more; 250 inet_sk(sk)->inet_id += 1 + more;
255 } else 251 } else
256 iph->id = 0; 252 iph->id = 0;
257 } else 253 } else
@@ -317,7 +313,7 @@ static inline void ip_ib_mc_map(__be32 naddr, const unsigned char *broadcast, ch
317 313
318static __inline__ void inet_reset_saddr(struct sock *sk) 314static __inline__ void inet_reset_saddr(struct sock *sk)
319{ 315{
320 inet_sk(sk)->rcv_saddr = inet_sk(sk)->saddr = 0; 316 inet_sk(sk)->inet_rcv_saddr = inet_sk(sk)->inet_saddr = 0;
321#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) 317#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
322 if (sk->sk_family == PF_INET6) { 318 if (sk->sk_family == PF_INET6) {
323 struct ipv6_pinfo *np = inet6_sk(sk); 319 struct ipv6_pinfo *np = inet6_sk(sk);
@@ -336,8 +332,7 @@ extern int ip_call_ra_chain(struct sk_buff *skb);
336 * Functions provided by ip_fragment.c 332 * Functions provided by ip_fragment.c
337 */ 333 */
338 334
339enum ip_defrag_users 335enum ip_defrag_users {
340{
341 IP_DEFRAG_LOCAL_DELIVER, 336 IP_DEFRAG_LOCAL_DELIVER,
342 IP_DEFRAG_CALL_RA_CHAIN, 337 IP_DEFRAG_CALL_RA_CHAIN,
343 IP_DEFRAG_CONNTRACK_IN, 338 IP_DEFRAG_CONNTRACK_IN,
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 15b492a9aa79..257808188add 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -30,8 +30,7 @@
30 30
31struct rt6_info; 31struct rt6_info;
32 32
33struct fib6_config 33struct fib6_config {
34{
35 u32 fc_table; 34 u32 fc_table;
36 u32 fc_metric; 35 u32 fc_metric;
37 int fc_dst_len; 36 int fc_dst_len;
@@ -51,8 +50,7 @@ struct fib6_config
51 struct nl_info fc_nlinfo; 50 struct nl_info fc_nlinfo;
52}; 51};
53 52
54struct fib6_node 53struct fib6_node {
55{
56 struct fib6_node *parent; 54 struct fib6_node *parent;
57 struct fib6_node *left; 55 struct fib6_node *left;
58 struct fib6_node *right; 56 struct fib6_node *right;
@@ -78,16 +76,14 @@ struct fib6_node
78 * 76 *
79 */ 77 */
80 78
81struct rt6key 79struct rt6key {
82{
83 struct in6_addr addr; 80 struct in6_addr addr;
84 int plen; 81 int plen;
85}; 82};
86 83
87struct fib6_table; 84struct fib6_table;
88 85
89struct rt6_info 86struct rt6_info {
90{
91 union { 87 union {
92 struct dst_entry dst; 88 struct dst_entry dst;
93 } u; 89 } u;
@@ -127,8 +123,7 @@ static inline struct inet6_dev *ip6_dst_idev(struct dst_entry *dst)
127 return ((struct rt6_info *)dst)->rt6i_idev; 123 return ((struct rt6_info *)dst)->rt6i_idev;
128} 124}
129 125
130struct fib6_walker_t 126struct fib6_walker_t {
131{
132 struct fib6_walker_t *prev, *next; 127 struct fib6_walker_t *prev, *next;
133 struct fib6_node *root, *node; 128 struct fib6_node *root, *node;
134 struct rt6_info *leaf; 129 struct rt6_info *leaf;
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
index 0e1b8aebaff8..4a808de7c0f6 100644
--- a/include/net/ip6_route.h
+++ b/include/net/ip6_route.h
@@ -103,8 +103,7 @@ extern void rt6_pmtu_discovery(struct in6_addr *daddr,
103 103
104struct netlink_callback; 104struct netlink_callback;
105 105
106struct rt6_rtnl_dump_arg 106struct rt6_rtnl_dump_arg {
107{
108 struct sk_buff *skb; 107 struct sk_buff *skb;
109 struct netlink_callback *cb; 108 struct netlink_callback *cb;
110 struct net *net; 109 struct net *net;
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
index 4d22fabc7719..c93f94edc610 100644
--- a/include/net/ip_fib.h
+++ b/include/net/ip_fib.h
@@ -144,18 +144,21 @@ struct fib_table {
144 struct hlist_node tb_hlist; 144 struct hlist_node tb_hlist;
145 u32 tb_id; 145 u32 tb_id;
146 int tb_default; 146 int tb_default;
147 int (*tb_lookup)(struct fib_table *tb, const struct flowi *flp, struct fib_result *res);
148 int (*tb_insert)(struct fib_table *, struct fib_config *);
149 int (*tb_delete)(struct fib_table *, struct fib_config *);
150 int (*tb_dump)(struct fib_table *table, struct sk_buff *skb,
151 struct netlink_callback *cb);
152 int (*tb_flush)(struct fib_table *table);
153 void (*tb_select_default)(struct fib_table *table,
154 const struct flowi *flp, struct fib_result *res);
155
156 unsigned char tb_data[0]; 147 unsigned char tb_data[0];
157}; 148};
158 149
150extern int fib_table_lookup(struct fib_table *tb, const struct flowi *flp,
151 struct fib_result *res);
152extern int fib_table_insert(struct fib_table *, struct fib_config *);
153extern int fib_table_delete(struct fib_table *, struct fib_config *);
154extern int fib_table_dump(struct fib_table *table, struct sk_buff *skb,
155 struct netlink_callback *cb);
156extern int fib_table_flush(struct fib_table *table);
157extern void fib_table_select_default(struct fib_table *table,
158 const struct flowi *flp,
159 struct fib_result *res);
160
161
159#ifndef CONFIG_IP_MULTIPLE_TABLES 162#ifndef CONFIG_IP_MULTIPLE_TABLES
160 163
161#define TABLE_LOCAL_INDEX 0 164#define TABLE_LOCAL_INDEX 0
@@ -182,11 +185,11 @@ static inline int fib_lookup(struct net *net, const struct flowi *flp,
182 struct fib_table *table; 185 struct fib_table *table;
183 186
184 table = fib_get_table(net, RT_TABLE_LOCAL); 187 table = fib_get_table(net, RT_TABLE_LOCAL);
185 if (!table->tb_lookup(table, flp, res)) 188 if (!fib_table_lookup(table, flp, res))
186 return 0; 189 return 0;
187 190
188 table = fib_get_table(net, RT_TABLE_MAIN); 191 table = fib_get_table(net, RT_TABLE_MAIN);
189 if (!table->tb_lookup(table, flp, res)) 192 if (!fib_table_lookup(table, flp, res))
190 return 0; 193 return 0;
191 return -ENETUNREACH; 194 return -ENETUNREACH;
192} 195}
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
index 98978e73f666..8dc3296b7bea 100644
--- a/include/net/ip_vs.h
+++ b/include/net/ip_vs.h
@@ -251,8 +251,7 @@ struct ip_vs_estimator {
251 u32 outbps; 251 u32 outbps;
252}; 252};
253 253
254struct ip_vs_stats 254struct ip_vs_stats {
255{
256 struct ip_vs_stats_user ustats; /* statistics */ 255 struct ip_vs_stats_user ustats; /* statistics */
257 struct ip_vs_estimator est; /* estimator */ 256 struct ip_vs_estimator est; /* estimator */
258 257
@@ -518,8 +517,7 @@ struct ip_vs_scheduler {
518/* 517/*
519 * The application module object (a.k.a. app incarnation) 518 * The application module object (a.k.a. app incarnation)
520 */ 519 */
521struct ip_vs_app 520struct ip_vs_app {
522{
523 struct list_head a_list; /* member in app list */ 521 struct list_head a_list; /* member in app list */
524 int type; /* IP_VS_APP_TYPE_xxx */ 522 int type; /* IP_VS_APP_TYPE_xxx */
525 char *name; /* application module name */ 523 char *name; /* application module name */
diff --git a/include/net/ipip.h b/include/net/ipip.h
index 87acf8f3a155..11e8513d2d07 100644
--- a/include/net/ipip.h
+++ b/include/net/ipip.h
@@ -7,8 +7,15 @@
7/* Keep error state on tunnel for 30 sec */ 7/* Keep error state on tunnel for 30 sec */
8#define IPTUNNEL_ERR_TIMEO (30*HZ) 8#define IPTUNNEL_ERR_TIMEO (30*HZ)
9 9
10struct ip_tunnel 10/* 6rd prefix/relay information */
11{ 11struct ip_tunnel_6rd_parm {
12 struct in6_addr prefix;
13 __be32 relay_prefix;
14 u16 prefixlen;
15 u16 relay_prefixlen;
16};
17
18struct ip_tunnel {
12 struct ip_tunnel *next; 19 struct ip_tunnel *next;
13 struct net_device *dev; 20 struct net_device *dev;
14 21
@@ -23,15 +30,19 @@ struct ip_tunnel
23 30
24 struct ip_tunnel_parm parms; 31 struct ip_tunnel_parm parms;
25 32
33 /* for SIT */
34#ifdef CONFIG_IPV6_SIT_6RD
35 struct ip_tunnel_6rd_parm ip6rd;
36#endif
26 struct ip_tunnel_prl_entry *prl; /* potential router list */ 37 struct ip_tunnel_prl_entry *prl; /* potential router list */
27 unsigned int prl_count; /* # of entries in PRL */ 38 unsigned int prl_count; /* # of entries in PRL */
28}; 39};
29 40
30struct ip_tunnel_prl_entry 41struct ip_tunnel_prl_entry {
31{
32 struct ip_tunnel_prl_entry *next; 42 struct ip_tunnel_prl_entry *next;
33 __be32 addr; 43 __be32 addr;
34 u16 flags; 44 u16 flags;
45 struct rcu_head rcu_head;
35}; 46};
36 47
37#define IPTUNNEL_XMIT() do { \ 48#define IPTUNNEL_XMIT() do { \
@@ -42,9 +53,9 @@ struct ip_tunnel_prl_entry
42 ip_select_ident(iph, &rt->u.dst, NULL); \ 53 ip_select_ident(iph, &rt->u.dst, NULL); \
43 \ 54 \
44 err = ip_local_out(skb); \ 55 err = ip_local_out(skb); \
45 if (net_xmit_eval(err) == 0) { \ 56 if (likely(net_xmit_eval(err) == 0)) { \
46 stats->tx_bytes += pkt_len; \ 57 txq->tx_bytes += pkt_len; \
47 stats->tx_packets++; \ 58 txq->tx_packets++; \
48 } else { \ 59 } else { \
49 stats->tx_errors++; \ 60 stats->tx_errors++; \
50 stats->tx_aborted_errors++; \ 61 stats->tx_aborted_errors++; \
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 8c31d8a0c1fe..92db8617d188 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -160,8 +160,7 @@ extern struct ctl_path net_ipv6_ctl_path[];
160#define ICMP6MSGIN_INC_STATS_BH(net, idev, field) \ 160#define ICMP6MSGIN_INC_STATS_BH(net, idev, field) \
161 _DEVINC(net, icmpv6msg, _BH, idev, field) 161 _DEVINC(net, icmpv6msg, _BH, idev, field)
162 162
163struct ip6_ra_chain 163struct ip6_ra_chain {
164{
165 struct ip6_ra_chain *next; 164 struct ip6_ra_chain *next;
166 struct sock *sk; 165 struct sock *sk;
167 int sel; 166 int sel;
@@ -176,8 +175,7 @@ extern rwlock_t ip6_ra_lock;
176 ancillary data and passed to IPv6. 175 ancillary data and passed to IPv6.
177 */ 176 */
178 177
179struct ipv6_txoptions 178struct ipv6_txoptions {
180{
181 /* Length of this structure */ 179 /* Length of this structure */
182 int tot_len; 180 int tot_len;
183 181
@@ -194,8 +192,7 @@ struct ipv6_txoptions
194 /* Option buffer, as read by IPV6_PKTOPTIONS, starts here. */ 192 /* Option buffer, as read by IPV6_PKTOPTIONS, starts here. */
195}; 193};
196 194
197struct ip6_flowlabel 195struct ip6_flowlabel {
198{
199 struct ip6_flowlabel *next; 196 struct ip6_flowlabel *next;
200 __be32 label; 197 __be32 label;
201 atomic_t users; 198 atomic_t users;
@@ -212,8 +209,7 @@ struct ip6_flowlabel
212#define IPV6_FLOWINFO_MASK cpu_to_be32(0x0FFFFFFF) 209#define IPV6_FLOWINFO_MASK cpu_to_be32(0x0FFFFFFF)
213#define IPV6_FLOWLABEL_MASK cpu_to_be32(0x000FFFFF) 210#define IPV6_FLOWLABEL_MASK cpu_to_be32(0x000FFFFF)
214 211
215struct ipv6_fl_socklist 212struct ipv6_fl_socklist {
216{
217 struct ipv6_fl_socklist *next; 213 struct ipv6_fl_socklist *next;
218 struct ip6_flowlabel *fl; 214 struct ip6_flowlabel *fl;
219}; 215};
diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h
index e9054a283fde..b2b98f3fa265 100644
--- a/include/net/iw_handler.h
+++ b/include/net/iw_handler.h
@@ -300,8 +300,7 @@
300 * This struct is also my long term insurance. I can add new fields here 300 * This struct is also my long term insurance. I can add new fields here
301 * without breaking the prototype of iw_handler... 301 * without breaking the prototype of iw_handler...
302 */ 302 */
303struct iw_request_info 303struct iw_request_info {
304{
305 __u16 cmd; /* Wireless Extension command */ 304 __u16 cmd; /* Wireless Extension command */
306 __u16 flags; /* More to come ;-) */ 305 __u16 flags; /* More to come ;-) */
307}; 306};
@@ -321,20 +320,20 @@ typedef int (*iw_handler)(struct net_device *dev, struct iw_request_info *info,
321 * shared by all driver instances... Same for the members... 320 * shared by all driver instances... Same for the members...
322 * This will be linked from net_device in <linux/netdevice.h> 321 * This will be linked from net_device in <linux/netdevice.h>
323 */ 322 */
324struct iw_handler_def 323struct iw_handler_def {
325{
326 /* Number of handlers defined (more precisely, index of the
327 * last defined handler + 1) */
328 __u16 num_standard;
329 __u16 num_private;
330 /* Number of private arg description */
331 __u16 num_private_args;
332 324
333 /* Array of handlers for standard ioctls 325 /* Array of handlers for standard ioctls
334 * We will call dev->wireless_handlers->standard[ioctl - SIOCSIWCOMMIT] 326 * We will call dev->wireless_handlers->standard[ioctl - SIOCSIWCOMMIT]
335 */ 327 */
336 const iw_handler * standard; 328 const iw_handler * standard;
329 /* Number of handlers defined (more precisely, index of the
330 * last defined handler + 1) */
331 __u16 num_standard;
337 332
333#ifdef CONFIG_WEXT_PRIV
334 __u16 num_private;
335 /* Number of private arg description */
336 __u16 num_private_args;
338 /* Array of handlers for private ioctls 337 /* Array of handlers for private ioctls
339 * Will call dev->wireless_handlers->private[ioctl - SIOCIWFIRSTPRIV] 338 * Will call dev->wireless_handlers->private[ioctl - SIOCIWFIRSTPRIV]
340 */ 339 */
@@ -344,6 +343,7 @@ struct iw_handler_def
344 * can put it in any order you want and should not leave holes... 343 * can put it in any order you want and should not leave holes...
345 * We will automatically export that to user space... */ 344 * We will automatically export that to user space... */
346 const struct iw_priv_args * private_args; 345 const struct iw_priv_args * private_args;
346#endif
347 347
348 /* New location of get_wireless_stats, to de-bloat struct net_device. 348 /* New location of get_wireless_stats, to de-bloat struct net_device.
349 * The old pointer in struct net_device will be gradually phased 349 * The old pointer in struct net_device will be gradually phased
@@ -370,8 +370,7 @@ struct iw_handler_def
370/* 370/*
371 * Describe how a standard IOCTL looks like. 371 * Describe how a standard IOCTL looks like.
372 */ 372 */
373struct iw_ioctl_description 373struct iw_ioctl_description {
374{
375 __u8 header_type; /* NULL, iw_point or other */ 374 __u8 header_type; /* NULL, iw_point or other */
376 __u8 token_type; /* Future */ 375 __u8 token_type; /* Future */
377 __u16 token_size; /* Granularity of payload */ 376 __u16 token_size; /* Granularity of payload */
@@ -393,8 +392,7 @@ struct iw_ioctl_description
393/* 392/*
394 * Instance specific spy data, i.e. addresses spied and quality for them. 393 * Instance specific spy data, i.e. addresses spied and quality for them.
395 */ 394 */
396struct iw_spy_data 395struct iw_spy_data {
397{
398 /* --- Standard spy support --- */ 396 /* --- Standard spy support --- */
399 int spy_number; 397 int spy_number;
400 u_char spy_address[IW_MAX_SPY][ETH_ALEN]; 398 u_char spy_address[IW_MAX_SPY][ETH_ALEN];
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index c75b960c8ac8..c42c4a820b89 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1665,11 +1665,11 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw);
1665 * header if %RX_FLAG_RADIOTAP is set in the @status flags. 1665 * header if %RX_FLAG_RADIOTAP is set in the @status flags.
1666 * 1666 *
1667 * This function may not be called in IRQ context. Calls to this function 1667 * This function may not be called in IRQ context. Calls to this function
1668 * for a single hardware must be synchronized against each other. Calls 1668 * for a single hardware must be synchronized against each other. Calls to
1669 * to this function and ieee80211_rx_irqsafe() may not be mixed for a 1669 * this function, ieee80211_rx_ni() and ieee80211_rx_irqsafe() may not be
1670 * single hardware. 1670 * mixed for a single hardware.
1671 * 1671 *
1672 * Note that right now, this function must be called with softirqs disabled. 1672 * In process context use instead ieee80211_rx_ni().
1673 * 1673 *
1674 * @hw: the hardware this frame came in on 1674 * @hw: the hardware this frame came in on
1675 * @skb: the buffer to receive, owned by mac80211 after this call 1675 * @skb: the buffer to receive, owned by mac80211 after this call
@@ -1682,8 +1682,8 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb);
1682 * Like ieee80211_rx() but can be called in IRQ context 1682 * Like ieee80211_rx() but can be called in IRQ context
1683 * (internally defers to a tasklet.) 1683 * (internally defers to a tasklet.)
1684 * 1684 *
1685 * Calls to this function and ieee80211_rx() may not be mixed for a 1685 * Calls to this function, ieee80211_rx() or ieee80211_rx_ni() may not
1686 * single hardware. 1686 * be mixed for a single hardware.
1687 * 1687 *
1688 * @hw: the hardware this frame came in on 1688 * @hw: the hardware this frame came in on
1689 * @skb: the buffer to receive, owned by mac80211 after this call 1689 * @skb: the buffer to receive, owned by mac80211 after this call
@@ -1691,6 +1691,26 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb);
1691void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb); 1691void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb);
1692 1692
1693/** 1693/**
1694 * ieee80211_rx_ni - receive frame (in process context)
1695 *
1696 * Like ieee80211_rx() but can be called in process context
1697 * (internally disables bottom halves).
1698 *
1699 * Calls to this function, ieee80211_rx() and ieee80211_rx_irqsafe() may
1700 * not be mixed for a single hardware.
1701 *
1702 * @hw: the hardware this frame came in on
1703 * @skb: the buffer to receive, owned by mac80211 after this call
1704 */
1705static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
1706 struct sk_buff *skb)
1707{
1708 local_bh_disable();
1709 ieee80211_rx(hw, skb);
1710 local_bh_enable();
1711}
1712
1713/**
1694 * ieee80211_tx_status - transmit status callback 1714 * ieee80211_tx_status - transmit status callback
1695 * 1715 *
1696 * Call this function for all transmitted frames after they have been 1716 * Call this function for all transmitted frames after they have been
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 3817fda82a80..db8e96dd114e 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -37,8 +37,7 @@
37 37
38struct neighbour; 38struct neighbour;
39 39
40struct neigh_parms 40struct neigh_parms {
41{
42#ifdef CONFIG_NET_NS 41#ifdef CONFIG_NET_NS
43 struct net *net; 42 struct net *net;
44#endif 43#endif
@@ -70,8 +69,7 @@ struct neigh_parms
70 int locktime; 69 int locktime;
71}; 70};
72 71
73struct neigh_statistics 72struct neigh_statistics {
74{
75 unsigned long allocs; /* number of allocated neighs */ 73 unsigned long allocs; /* number of allocated neighs */
76 unsigned long destroys; /* number of destroyed neighs */ 74 unsigned long destroys; /* number of destroyed neighs */
77 unsigned long hash_grows; /* number of hash resizes */ 75 unsigned long hash_grows; /* number of hash resizes */
@@ -97,8 +95,7 @@ struct neigh_statistics
97 preempt_enable(); \ 95 preempt_enable(); \
98 } while (0) 96 } while (0)
99 97
100struct neighbour 98struct neighbour {
101{
102 struct neighbour *next; 99 struct neighbour *next;
103 struct neigh_table *tbl; 100 struct neigh_table *tbl;
104 struct neigh_parms *parms; 101 struct neigh_parms *parms;
@@ -122,8 +119,7 @@ struct neighbour
122 u8 primary_key[0]; 119 u8 primary_key[0];
123}; 120};
124 121
125struct neigh_ops 122struct neigh_ops {
126{
127 int family; 123 int family;
128 void (*solicit)(struct neighbour *, struct sk_buff*); 124 void (*solicit)(struct neighbour *, struct sk_buff*);
129 void (*error_report)(struct neighbour *, struct sk_buff*); 125 void (*error_report)(struct neighbour *, struct sk_buff*);
@@ -133,8 +129,7 @@ struct neigh_ops
133 int (*queue_xmit)(struct sk_buff*); 129 int (*queue_xmit)(struct sk_buff*);
134}; 130};
135 131
136struct pneigh_entry 132struct pneigh_entry {
137{
138 struct pneigh_entry *next; 133 struct pneigh_entry *next;
139#ifdef CONFIG_NET_NS 134#ifdef CONFIG_NET_NS
140 struct net *net; 135 struct net *net;
@@ -149,8 +144,7 @@ struct pneigh_entry
149 */ 144 */
150 145
151 146
152struct neigh_table 147struct neigh_table {
153{
154 struct neigh_table *next; 148 struct neigh_table *next;
155 int family; 149 int family;
156 int entry_size; 150 int entry_size;
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index a1202841aadd..0addd45038ac 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -28,6 +28,10 @@ struct ctl_table_header;
28struct net_generic; 28struct net_generic;
29struct sock; 29struct sock;
30 30
31
32#define NETDEV_HASHBITS 8
33#define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS)
34
31struct net { 35struct net {
32 atomic_t count; /* To decided when the network 36 atomic_t count; /* To decided when the network
33 * namespace should be freed. 37 * namespace should be freed.
@@ -80,7 +84,7 @@ struct net {
80#ifdef CONFIG_XFRM 84#ifdef CONFIG_XFRM
81 struct netns_xfrm xfrm; 85 struct netns_xfrm xfrm;
82#endif 86#endif
83#ifdef CONFIG_WIRELESS_EXT 87#ifdef CONFIG_WEXT_CORE
84 struct sk_buff_head wext_nlevents; 88 struct sk_buff_head wext_nlevents;
85#endif 89#endif
86 struct net_generic *gen; 90 struct net_generic *gen;
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
index 4f20d58e2ab7..475facc3051a 100644
--- a/include/net/netfilter/nf_conntrack_ecache.h
+++ b/include/net/netfilter/nf_conntrack_ecache.h
@@ -13,8 +13,7 @@
13#include <net/netfilter/nf_conntrack_extend.h> 13#include <net/netfilter/nf_conntrack_extend.h>
14 14
15/* Connection tracking event types */ 15/* Connection tracking event types */
16enum ip_conntrack_events 16enum ip_conntrack_events {
17{
18 IPCT_NEW = 0, /* new conntrack */ 17 IPCT_NEW = 0, /* new conntrack */
19 IPCT_RELATED = 1, /* related conntrack */ 18 IPCT_RELATED = 1, /* related conntrack */
20 IPCT_DESTROY = 2, /* destroyed conntrack */ 19 IPCT_DESTROY = 2, /* destroyed conntrack */
diff --git a/include/net/netfilter/nf_conntrack_expect.h b/include/net/netfilter/nf_conntrack_expect.h
index a9652806d0df..9a2b9cb52271 100644
--- a/include/net/netfilter/nf_conntrack_expect.h
+++ b/include/net/netfilter/nf_conntrack_expect.h
@@ -9,8 +9,7 @@
9extern unsigned int nf_ct_expect_hsize; 9extern unsigned int nf_ct_expect_hsize;
10extern unsigned int nf_ct_expect_max; 10extern unsigned int nf_ct_expect_max;
11 11
12struct nf_conntrack_expect 12struct nf_conntrack_expect {
13{
14 /* Conntrack expectation list member */ 13 /* Conntrack expectation list member */
15 struct hlist_node lnode; 14 struct hlist_node lnode;
16 15
@@ -64,8 +63,7 @@ static inline struct net *nf_ct_exp_net(struct nf_conntrack_expect *exp)
64#endif 63#endif
65} 64}
66 65
67struct nf_conntrack_expect_policy 66struct nf_conntrack_expect_policy {
68{
69 unsigned int max_expected; 67 unsigned int max_expected;
70 unsigned int timeout; 68 unsigned int timeout;
71}; 69};
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index 7f8fc5d123c5..e192dc17c583 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -3,8 +3,7 @@
3 3
4#include <net/netfilter/nf_conntrack.h> 4#include <net/netfilter/nf_conntrack.h>
5 5
6enum nf_ct_ext_id 6enum nf_ct_ext_id {
7{
8 NF_CT_EXT_HELPER, 7 NF_CT_EXT_HELPER,
9 NF_CT_EXT_NAT, 8 NF_CT_EXT_NAT,
10 NF_CT_EXT_ACCT, 9 NF_CT_EXT_ACCT,
@@ -65,8 +64,7 @@ __nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp);
65 64
66#define NF_CT_EXT_F_PREALLOC 0x0001 65#define NF_CT_EXT_F_PREALLOC 0x0001
67 66
68struct nf_ct_ext_type 67struct nf_ct_ext_type {
69{
70 /* Destroys relationships (can be NULL). */ 68 /* Destroys relationships (can be NULL). */
71 void (*destroy)(struct nf_conn *ct); 69 void (*destroy)(struct nf_conn *ct);
72 /* Called when realloacted (can be NULL). 70 /* Called when realloacted (can be NULL).
diff --git a/include/net/netfilter/nf_conntrack_helper.h b/include/net/netfilter/nf_conntrack_helper.h
index 1b7068000927..d015de92e03f 100644
--- a/include/net/netfilter/nf_conntrack_helper.h
+++ b/include/net/netfilter/nf_conntrack_helper.h
@@ -16,8 +16,7 @@ struct module;
16 16
17#define NF_CT_HELPER_NAME_LEN 16 17#define NF_CT_HELPER_NAME_LEN 16
18 18
19struct nf_conntrack_helper 19struct nf_conntrack_helper {
20{
21 struct hlist_node hnode; /* Internal use. */ 20 struct hlist_node hnode; /* Internal use. */
22 21
23 const char *name; /* name of the module */ 22 const char *name; /* name of the module */
diff --git a/include/net/netfilter/nf_conntrack_l3proto.h b/include/net/netfilter/nf_conntrack_l3proto.h
index 9f99d36d5de9..a7547611e8f1 100644
--- a/include/net/netfilter/nf_conntrack_l3proto.h
+++ b/include/net/netfilter/nf_conntrack_l3proto.h
@@ -16,8 +16,7 @@
16#include <linux/seq_file.h> 16#include <linux/seq_file.h>
17#include <net/netfilter/nf_conntrack.h> 17#include <net/netfilter/nf_conntrack.h>
18 18
19struct nf_conntrack_l3proto 19struct nf_conntrack_l3proto {
20{
21 /* L3 Protocol Family number. ex) PF_INET */ 20 /* L3 Protocol Family number. ex) PF_INET */
22 u_int16_t l3proto; 21 u_int16_t l3proto;
23 22
diff --git a/include/net/netfilter/nf_conntrack_l4proto.h b/include/net/netfilter/nf_conntrack_l4proto.h
index 3767fb41e541..ca6dcf3445ab 100644
--- a/include/net/netfilter/nf_conntrack_l4proto.h
+++ b/include/net/netfilter/nf_conntrack_l4proto.h
@@ -15,8 +15,7 @@
15 15
16struct seq_file; 16struct seq_file;
17 17
18struct nf_conntrack_l4proto 18struct nf_conntrack_l4proto {
19{
20 /* L3 Protocol number. */ 19 /* L3 Protocol number. */
21 u_int16_t l3proto; 20 u_int16_t l3proto;
22 21
diff --git a/include/net/netfilter/nf_conntrack_tuple.h b/include/net/netfilter/nf_conntrack_tuple.h
index 2628c154d40e..4ee44c84a304 100644
--- a/include/net/netfilter/nf_conntrack_tuple.h
+++ b/include/net/netfilter/nf_conntrack_tuple.h
@@ -26,8 +26,7 @@
26 26
27/* The protocol-specific manipulable parts of the tuple: always in 27/* The protocol-specific manipulable parts of the tuple: always in
28 network order! */ 28 network order! */
29union nf_conntrack_man_proto 29union nf_conntrack_man_proto {
30{
31 /* Add other protocols here. */ 30 /* Add other protocols here. */
32 __be16 all; 31 __be16 all;
33 32
@@ -52,8 +51,7 @@ union nf_conntrack_man_proto
52}; 51};
53 52
54/* The manipulable part of the tuple. */ 53/* The manipulable part of the tuple. */
55struct nf_conntrack_man 54struct nf_conntrack_man {
56{
57 union nf_inet_addr u3; 55 union nf_inet_addr u3;
58 union nf_conntrack_man_proto u; 56 union nf_conntrack_man_proto u;
59 /* Layer 3 protocol */ 57 /* Layer 3 protocol */
@@ -61,8 +59,7 @@ struct nf_conntrack_man
61}; 59};
62 60
63/* This contains the information to distinguish a connection. */ 61/* This contains the information to distinguish a connection. */
64struct nf_conntrack_tuple 62struct nf_conntrack_tuple {
65{
66 struct nf_conntrack_man src; 63 struct nf_conntrack_man src;
67 64
68 /* These are the parts of the tuple which are fixed. */ 65 /* These are the parts of the tuple which are fixed. */
@@ -100,8 +97,7 @@ struct nf_conntrack_tuple
100 } dst; 97 } dst;
101}; 98};
102 99
103struct nf_conntrack_tuple_mask 100struct nf_conntrack_tuple_mask {
104{
105 struct { 101 struct {
106 union nf_inet_addr u3; 102 union nf_inet_addr u3;
107 union nf_conntrack_man_proto u; 103 union nf_conntrack_man_proto u;
diff --git a/include/net/netfilter/nf_nat.h b/include/net/netfilter/nf_nat.h
index 8df0b7f7fc6e..f5f09f032a90 100644
--- a/include/net/netfilter/nf_nat.h
+++ b/include/net/netfilter/nf_nat.h
@@ -5,8 +5,7 @@
5 5
6#define NF_NAT_MAPPING_TYPE_MAX_NAMELEN 16 6#define NF_NAT_MAPPING_TYPE_MAX_NAMELEN 16
7 7
8enum nf_nat_manip_type 8enum nf_nat_manip_type {
9{
10 IP_NAT_MANIP_SRC, 9 IP_NAT_MANIP_SRC,
11 IP_NAT_MANIP_DST 10 IP_NAT_MANIP_DST
12}; 11};
@@ -30,8 +29,7 @@ struct nf_nat_seq {
30}; 29};
31 30
32/* Single range specification. */ 31/* Single range specification. */
33struct nf_nat_range 32struct nf_nat_range {
34{
35 /* Set to OR of flags above. */ 33 /* Set to OR of flags above. */
36 unsigned int flags; 34 unsigned int flags;
37 35
@@ -43,8 +41,7 @@ struct nf_nat_range
43}; 41};
44 42
45/* For backwards compat: don't use in modern code. */ 43/* For backwards compat: don't use in modern code. */
46struct nf_nat_multi_range_compat 44struct nf_nat_multi_range_compat {
47{
48 unsigned int rangesize; /* Must be 1. */ 45 unsigned int rangesize; /* Must be 1. */
49 46
50 /* hangs off end. */ 47 /* hangs off end. */
@@ -57,8 +54,7 @@ struct nf_nat_multi_range_compat
57#include <net/netfilter/nf_conntrack_extend.h> 54#include <net/netfilter/nf_conntrack_extend.h>
58 55
59/* per conntrack: nat application helper private data */ 56/* per conntrack: nat application helper private data */
60union nf_conntrack_nat_help 57union nf_conntrack_nat_help {
61{
62 /* insert nat helper private data here */ 58 /* insert nat helper private data here */
63 struct nf_nat_pptp nat_pptp_info; 59 struct nf_nat_pptp nat_pptp_info;
64}; 60};
@@ -66,8 +62,7 @@ union nf_conntrack_nat_help
66struct nf_conn; 62struct nf_conn;
67 63
68/* The structure embedded in the conntrack structure. */ 64/* The structure embedded in the conntrack structure. */
69struct nf_conn_nat 65struct nf_conn_nat {
70{
71 struct hlist_node bysource; 66 struct hlist_node bysource;
72 struct nf_nat_seq seq[IP_CT_DIR_MAX]; 67 struct nf_nat_seq seq[IP_CT_DIR_MAX];
73 struct nf_conn *ct; 68 struct nf_conn *ct;
diff --git a/include/net/netfilter/nf_nat_protocol.h b/include/net/netfilter/nf_nat_protocol.h
index f3662c4394ef..c398017ccfa3 100644
--- a/include/net/netfilter/nf_nat_protocol.h
+++ b/include/net/netfilter/nf_nat_protocol.h
@@ -6,8 +6,7 @@
6 6
7struct nf_nat_range; 7struct nf_nat_range;
8 8
9struct nf_nat_protocol 9struct nf_nat_protocol {
10{
11 /* Protocol number. */ 10 /* Protocol number. */
12 unsigned int protonum; 11 unsigned int protonum;
13 12
diff --git a/include/net/phonet/phonet.h b/include/net/phonet/phonet.h
index d43f71b5ec00..fdb05fa0346f 100644
--- a/include/net/phonet/phonet.h
+++ b/include/net/phonet/phonet.h
@@ -47,6 +47,7 @@ static inline struct pn_sock *pn_sk(struct sock *sk)
47extern const struct proto_ops phonet_dgram_ops; 47extern const struct proto_ops phonet_dgram_ops;
48 48
49struct sock *pn_find_sock_by_sa(struct net *net, const struct sockaddr_pn *sa); 49struct sock *pn_find_sock_by_sa(struct net *net, const struct sockaddr_pn *sa);
50void pn_deliver_sock_broadcast(struct net *net, struct sk_buff *skb);
50void phonet_get_local_port_range(int *min, int *max); 51void phonet_get_local_port_range(int *min, int *max);
51void pn_sock_hash(struct sock *sk); 52void pn_sock_hash(struct sock *sk);
52void pn_sock_unhash(struct sock *sk); 53void pn_sock_unhash(struct sock *sk);
diff --git a/include/net/phonet/pn_dev.h b/include/net/phonet/pn_dev.h
index 44c923c9e21d..afa7defceb14 100644
--- a/include/net/phonet/pn_dev.h
+++ b/include/net/phonet/pn_dev.h
@@ -47,6 +47,12 @@ u8 phonet_address_get(struct net_device *dev, u8 addr);
47int phonet_address_lookup(struct net *net, u8 addr); 47int phonet_address_lookup(struct net *net, u8 addr);
48void phonet_address_notify(int event, struct net_device *dev, u8 addr); 48void phonet_address_notify(int event, struct net_device *dev, u8 addr);
49 49
50int phonet_route_add(struct net_device *dev, u8 daddr);
51int phonet_route_del(struct net_device *dev, u8 daddr);
52void rtm_phonet_notify(int event, struct net_device *dev, u8 dst);
53struct net_device *phonet_route_get(struct net *net, u8 daddr);
54struct net_device *phonet_route_output(struct net *net, u8 daddr);
55
50#define PN_NO_ADDR 0xff 56#define PN_NO_ADDR 0xff
51 57
52extern const struct file_operations pn_sock_seq_fops; 58extern const struct file_operations pn_sock_seq_fops;
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
index d1ca31444644..3dd210d073ca 100644
--- a/include/net/pkt_cls.h
+++ b/include/net/pkt_cls.h
@@ -7,8 +7,7 @@
7 7
8/* Basic packet classifier frontend definitions. */ 8/* Basic packet classifier frontend definitions. */
9 9
10struct tcf_walker 10struct tcf_walker {
11{
12 int stop; 11 int stop;
13 int skip; 12 int skip;
14 int count; 13 int count;
@@ -61,8 +60,7 @@ tcf_unbind_filter(struct tcf_proto *tp, struct tcf_result *r)
61 tp->q->ops->cl_ops->unbind_tcf(tp->q, cl); 60 tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
62} 61}
63 62
64struct tcf_exts 63struct tcf_exts {
65{
66#ifdef CONFIG_NET_CLS_ACT 64#ifdef CONFIG_NET_CLS_ACT
67 struct tc_action *action; 65 struct tc_action *action;
68#endif 66#endif
@@ -71,8 +69,7 @@ struct tcf_exts
71/* Map to export classifier specific extension TLV types to the 69/* Map to export classifier specific extension TLV types to the
72 * generic extensions API. Unsupported extensions must be set to 0. 70 * generic extensions API. Unsupported extensions must be set to 0.
73 */ 71 */
74struct tcf_ext_map 72struct tcf_ext_map {
75{
76 int action; 73 int action;
77 int police; 74 int police;
78}; 75};
@@ -143,8 +140,7 @@ extern int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts,
143/** 140/**
144 * struct tcf_pkt_info - packet information 141 * struct tcf_pkt_info - packet information
145 */ 142 */
146struct tcf_pkt_info 143struct tcf_pkt_info {
147{
148 unsigned char * ptr; 144 unsigned char * ptr;
149 int nexthdr; 145 int nexthdr;
150}; 146};
@@ -162,8 +158,7 @@ struct tcf_ematch_ops;
162 * @datalen: length of the ematch specific configuration data 158 * @datalen: length of the ematch specific configuration data
163 * @data: ematch specific data 159 * @data: ematch specific data
164 */ 160 */
165struct tcf_ematch 161struct tcf_ematch {
166{
167 struct tcf_ematch_ops * ops; 162 struct tcf_ematch_ops * ops;
168 unsigned long data; 163 unsigned long data;
169 unsigned int datalen; 164 unsigned int datalen;
@@ -211,8 +206,7 @@ static inline int tcf_em_early_end(struct tcf_ematch *em, int result)
211 * @hdr: ematch tree header supplied by userspace 206 * @hdr: ematch tree header supplied by userspace
212 * @matches: array of ematches 207 * @matches: array of ematches
213 */ 208 */
214struct tcf_ematch_tree 209struct tcf_ematch_tree {
215{
216 struct tcf_ematch_tree_hdr hdr; 210 struct tcf_ematch_tree_hdr hdr;
217 struct tcf_ematch * matches; 211 struct tcf_ematch * matches;
218 212
@@ -230,8 +224,7 @@ struct tcf_ematch_tree
230 * @owner: owner, must be set to THIS_MODULE 224 * @owner: owner, must be set to THIS_MODULE
231 * @link: link to previous/next ematch module (internal use) 225 * @link: link to previous/next ematch module (internal use)
232 */ 226 */
233struct tcf_ematch_ops 227struct tcf_ematch_ops {
234{
235 int kind; 228 int kind;
236 int datalen; 229 int datalen;
237 int (*change)(struct tcf_proto *, void *, 230 int (*change)(struct tcf_proto *, void *,
@@ -302,8 +295,7 @@ static inline int tcf_em_tree_match(struct sk_buff *skb,
302 295
303#else /* CONFIG_NET_EMATCH */ 296#else /* CONFIG_NET_EMATCH */
304 297
305struct tcf_ematch_tree 298struct tcf_ematch_tree {
306{
307}; 299};
308 300
309#define tcf_em_tree_validate(tp, tb, t) ((void)(t), 0) 301#define tcf_em_tree_validate(tp, tb, t) ((void)(t), 0)
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index f911ec7598ef..2d567265363e 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -5,8 +5,7 @@
5#include <linux/ktime.h> 5#include <linux/ktime.h>
6#include <net/sch_generic.h> 6#include <net/sch_generic.h>
7 7
8struct qdisc_walker 8struct qdisc_walker {
9{
10 int stop; 9 int stop;
11 int skip; 10 int skip;
12 int count; 11 int count;
diff --git a/include/net/protocol.h b/include/net/protocol.h
index 60249e51b669..f1effdd3c265 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -47,8 +47,7 @@ struct net_protocol {
47}; 47};
48 48
49#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) 49#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
50struct inet6_protocol 50struct inet6_protocol {
51{
52 int (*handler)(struct sk_buff *skb); 51 int (*handler)(struct sk_buff *skb);
53 52
54 void (*err_handler)(struct sk_buff *skb, 53 void (*err_handler)(struct sk_buff *skb,
@@ -83,10 +82,6 @@ struct inet_protosw {
83 struct proto *prot; 82 struct proto *prot;
84 const struct proto_ops *ops; 83 const struct proto_ops *ops;
85 84
86 int capability; /* Which (if any) capability do
87 * we need to use this socket
88 * interface?
89 */
90 char no_check; /* checksum on rcv/xmit/none? */ 85 char no_check; /* checksum on rcv/xmit/none? */
91 unsigned char flags; /* See INET_PROTOSW_* below. */ 86 unsigned char flags; /* See INET_PROTOSW_* below. */
92}; 87};
diff --git a/include/net/red.h b/include/net/red.h
index 3cf31d466a81..995108e54d9f 100644
--- a/include/net/red.h
+++ b/include/net/red.h
@@ -90,8 +90,7 @@
90#define RED_STAB_SIZE 256 90#define RED_STAB_SIZE 256
91#define RED_STAB_MASK (RED_STAB_SIZE - 1) 91#define RED_STAB_MASK (RED_STAB_SIZE - 1)
92 92
93struct red_stats 93struct red_stats {
94{
95 u32 prob_drop; /* Early probability drops */ 94 u32 prob_drop; /* Early probability drops */
96 u32 prob_mark; /* Early probability marks */ 95 u32 prob_mark; /* Early probability marks */
97 u32 forced_drop; /* Forced drops, qavg > max_thresh */ 96 u32 forced_drop; /* Forced drops, qavg > max_thresh */
@@ -101,8 +100,7 @@ struct red_stats
101 u32 backlog; 100 u32 backlog;
102}; 101};
103 102
104struct red_parms 103struct red_parms {
105{
106 /* Parameters */ 104 /* Parameters */
107 u32 qth_min; /* Min avg length threshold: A scaled */ 105 u32 qth_min; /* Min avg length threshold: A scaled */
108 u32 qth_max; /* Max avg length threshold: A scaled */ 106 u32 qth_max; /* Max avg length threshold: A scaled */
diff --git a/include/net/route.h b/include/net/route.h
index 40f6346ef496..cfb4c071a136 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -49,10 +49,8 @@
49 49
50struct fib_nh; 50struct fib_nh;
51struct inet_peer; 51struct inet_peer;
52struct rtable 52struct rtable {
53{ 53 union {
54 union
55 {
56 struct dst_entry dst; 54 struct dst_entry dst;
57 } u; 55 } u;
58 56
@@ -77,16 +75,14 @@ struct rtable
77 struct inet_peer *peer; /* long-living peer info */ 75 struct inet_peer *peer; /* long-living peer info */
78}; 76};
79 77
80struct ip_rt_acct 78struct ip_rt_acct {
81{
82 __u32 o_bytes; 79 __u32 o_bytes;
83 __u32 o_packets; 80 __u32 o_packets;
84 __u32 i_bytes; 81 __u32 i_bytes;
85 __u32 i_packets; 82 __u32 i_packets;
86}; 83};
87 84
88struct rt_cache_stat 85struct rt_cache_stat {
89{
90 unsigned int in_hit; 86 unsigned int in_hit;
91 unsigned int in_slow_tot; 87 unsigned int in_slow_tot;
92 unsigned int in_slow_mc; 88 unsigned int in_slow_mc;
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
index c3aa044d3fc3..cd5af1f508f2 100644
--- a/include/net/rtnetlink.h
+++ b/include/net/rtnetlink.h
@@ -61,7 +61,8 @@ struct rtnl_link_ops {
61 int (*changelink)(struct net_device *dev, 61 int (*changelink)(struct net_device *dev,
62 struct nlattr *tb[], 62 struct nlattr *tb[],
63 struct nlattr *data[]); 63 struct nlattr *data[]);
64 void (*dellink)(struct net_device *dev); 64 void (*dellink)(struct net_device *dev,
65 struct list_head *head);
65 66
66 size_t (*get_size)(const struct net_device *dev); 67 size_t (*get_size)(const struct net_device *dev);
67 int (*fill_info)(struct sk_buff *skb, 68 int (*fill_info)(struct sk_buff *skb,
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index c33180dd42b4..dad558bc06fa 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -15,16 +15,14 @@ struct qdisc_walker;
15struct tcf_walker; 15struct tcf_walker;
16struct module; 16struct module;
17 17
18struct qdisc_rate_table 18struct qdisc_rate_table {
19{
20 struct tc_ratespec rate; 19 struct tc_ratespec rate;
21 u32 data[256]; 20 u32 data[256];
22 struct qdisc_rate_table *next; 21 struct qdisc_rate_table *next;
23 int refcnt; 22 int refcnt;
24}; 23};
25 24
26enum qdisc_state_t 25enum qdisc_state_t {
27{
28 __QDISC_STATE_RUNNING, 26 __QDISC_STATE_RUNNING,
29 __QDISC_STATE_SCHED, 27 __QDISC_STATE_SCHED,
30 __QDISC_STATE_DEACTIVATED, 28 __QDISC_STATE_DEACTIVATED,
@@ -37,8 +35,7 @@ struct qdisc_size_table {
37 u16 data[]; 35 u16 data[];
38}; 36};
39 37
40struct Qdisc 38struct Qdisc {
41{
42 int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev); 39 int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev);
43 struct sk_buff * (*dequeue)(struct Qdisc *dev); 40 struct sk_buff * (*dequeue)(struct Qdisc *dev);
44 unsigned flags; 41 unsigned flags;
@@ -78,8 +75,7 @@ struct Qdisc
78 struct gnet_stats_queue qstats; 75 struct gnet_stats_queue qstats;
79}; 76};
80 77
81struct Qdisc_class_ops 78struct Qdisc_class_ops {
82{
83 /* Child qdisc manipulation */ 79 /* Child qdisc manipulation */
84 struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); 80 struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
85 int (*graft)(struct Qdisc *, unsigned long cl, 81 int (*graft)(struct Qdisc *, unsigned long cl,
@@ -108,8 +104,7 @@ struct Qdisc_class_ops
108 struct gnet_dump *); 104 struct gnet_dump *);
109}; 105};
110 106
111struct Qdisc_ops 107struct Qdisc_ops {
112{
113 struct Qdisc_ops *next; 108 struct Qdisc_ops *next;
114 const struct Qdisc_class_ops *cl_ops; 109 const struct Qdisc_class_ops *cl_ops;
115 char id[IFNAMSIZ]; 110 char id[IFNAMSIZ];
@@ -133,14 +128,12 @@ struct Qdisc_ops
133}; 128};
134 129
135 130
136struct tcf_result 131struct tcf_result {
137{
138 unsigned long class; 132 unsigned long class;
139 u32 classid; 133 u32 classid;
140}; 134};
141 135
142struct tcf_proto_ops 136struct tcf_proto_ops {
143{
144 struct tcf_proto_ops *next; 137 struct tcf_proto_ops *next;
145 char kind[IFNAMSIZ]; 138 char kind[IFNAMSIZ];
146 139
@@ -164,8 +157,7 @@ struct tcf_proto_ops
164 struct module *owner; 157 struct module *owner;
165}; 158};
166 159
167struct tcf_proto 160struct tcf_proto {
168{
169 /* Fast access part */ 161 /* Fast access part */
170 struct tcf_proto *next; 162 struct tcf_proto *next;
171 void *root; 163 void *root;
@@ -261,14 +253,12 @@ extern struct Qdisc_ops noop_qdisc_ops;
261extern struct Qdisc_ops pfifo_fast_ops; 253extern struct Qdisc_ops pfifo_fast_ops;
262extern struct Qdisc_ops mq_qdisc_ops; 254extern struct Qdisc_ops mq_qdisc_ops;
263 255
264struct Qdisc_class_common 256struct Qdisc_class_common {
265{
266 u32 classid; 257 u32 classid;
267 struct hlist_node hnode; 258 struct hlist_node hnode;
268}; 259};
269 260
270struct Qdisc_class_hash 261struct Qdisc_class_hash {
271{
272 struct hlist_head *hash; 262 struct hlist_head *hash;
273 unsigned int hashsize; 263 unsigned int hashsize;
274 unsigned int hashmask; 264 unsigned int hashmask;
diff --git a/include/net/scm.h b/include/net/scm.h
index cf48c800e926..8360e47aa7e3 100644
--- a/include/net/scm.h
+++ b/include/net/scm.h
@@ -12,15 +12,13 @@
12 */ 12 */
13#define SCM_MAX_FD 255 13#define SCM_MAX_FD 255
14 14
15struct scm_fp_list 15struct scm_fp_list {
16{
17 struct list_head list; 16 struct list_head list;
18 int count; 17 int count;
19 struct file *fp[SCM_MAX_FD]; 18 struct file *fp[SCM_MAX_FD];
20}; 19};
21 20
22struct scm_cookie 21struct scm_cookie {
23{
24 struct ucred creds; /* Skb credentials */ 22 struct ucred creds; /* Skb credentials */
25 struct scm_fp_list *fp; /* Passed files */ 23 struct scm_fp_list *fp; /* Passed files */
26#ifdef CONFIG_SECURITY_NETWORK 24#ifdef CONFIG_SECURITY_NETWORK
@@ -88,8 +86,7 @@ static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct sc
88static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg, 86static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg,
89 struct scm_cookie *scm, int flags) 87 struct scm_cookie *scm, int flags)
90{ 88{
91 if (!msg->msg_control) 89 if (!msg->msg_control) {
92 {
93 if (test_bit(SOCK_PASSCRED, &sock->flags) || scm->fp) 90 if (test_bit(SOCK_PASSCRED, &sock->flags) || scm->fp)
94 msg->msg_flags |= MSG_CTRUNC; 91 msg->msg_flags |= MSG_CTRUNC;
95 scm_destroy(scm); 92 scm_destroy(scm);
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 8a6d5297de16..78740ec57d5d 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -227,8 +227,7 @@ DECLARE_SNMP_STAT(struct sctp_mib, sctp_statistics);
227#endif /* !TEST_FRAME */ 227#endif /* !TEST_FRAME */
228 228
229/* sctp mib definitions */ 229/* sctp mib definitions */
230enum 230enum {
231{
232 SCTP_MIB_NUM = 0, 231 SCTP_MIB_NUM = 0,
233 SCTP_MIB_CURRESTAB, /* CurrEstab */ 232 SCTP_MIB_CURRESTAB, /* CurrEstab */
234 SCTP_MIB_ACTIVEESTABS, /* ActiveEstabs */ 233 SCTP_MIB_ACTIVEESTABS, /* ActiveEstabs */
diff --git a/include/net/sock.h b/include/net/sock.h
index 9f96394f694e..55de3bd719a5 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -107,6 +107,7 @@ struct net;
107 * @skc_node: main hash linkage for various protocol lookup tables 107 * @skc_node: main hash linkage for various protocol lookup tables
108 * @skc_nulls_node: main hash linkage for UDP/UDP-Lite protocol 108 * @skc_nulls_node: main hash linkage for UDP/UDP-Lite protocol
109 * @skc_refcnt: reference count 109 * @skc_refcnt: reference count
110 * @skc_tx_queue_mapping: tx queue number for this connection
110 * @skc_hash: hash value used with various protocol lookup tables 111 * @skc_hash: hash value used with various protocol lookup tables
111 * @skc_family: network address family 112 * @skc_family: network address family
112 * @skc_state: Connection state 113 * @skc_state: Connection state
@@ -128,6 +129,7 @@ struct sock_common {
128 struct hlist_nulls_node skc_nulls_node; 129 struct hlist_nulls_node skc_nulls_node;
129 }; 130 };
130 atomic_t skc_refcnt; 131 atomic_t skc_refcnt;
132 int skc_tx_queue_mapping;
131 133
132 unsigned int skc_hash; 134 unsigned int skc_hash;
133 unsigned short skc_family; 135 unsigned short skc_family;
@@ -215,6 +217,7 @@ struct sock {
215#define sk_node __sk_common.skc_node 217#define sk_node __sk_common.skc_node
216#define sk_nulls_node __sk_common.skc_nulls_node 218#define sk_nulls_node __sk_common.skc_nulls_node
217#define sk_refcnt __sk_common.skc_refcnt 219#define sk_refcnt __sk_common.skc_refcnt
220#define sk_tx_queue_mapping __sk_common.skc_tx_queue_mapping
218 221
219#define sk_copy_start __sk_common.skc_hash 222#define sk_copy_start __sk_common.skc_hash
220#define sk_hash __sk_common.skc_hash 223#define sk_hash __sk_common.skc_hash
@@ -504,6 +507,8 @@ enum sock_flags {
504 SOCK_TIMESTAMPING_SOFTWARE, /* %SOF_TIMESTAMPING_SOFTWARE */ 507 SOCK_TIMESTAMPING_SOFTWARE, /* %SOF_TIMESTAMPING_SOFTWARE */
505 SOCK_TIMESTAMPING_RAW_HARDWARE, /* %SOF_TIMESTAMPING_RAW_HARDWARE */ 508 SOCK_TIMESTAMPING_RAW_HARDWARE, /* %SOF_TIMESTAMPING_RAW_HARDWARE */
506 SOCK_TIMESTAMPING_SYS_HARDWARE, /* %SOF_TIMESTAMPING_SYS_HARDWARE */ 509 SOCK_TIMESTAMPING_SYS_HARDWARE, /* %SOF_TIMESTAMPING_SYS_HARDWARE */
510 SOCK_FASYNC, /* fasync() active */
511 SOCK_RXQ_OVFL,
507}; 512};
508 513
509static inline void sock_copy_flags(struct sock *nsk, struct sock *osk) 514static inline void sock_copy_flags(struct sock *nsk, struct sock *osk)
@@ -1092,8 +1097,29 @@ static inline void sock_put(struct sock *sk)
1092extern int sk_receive_skb(struct sock *sk, struct sk_buff *skb, 1097extern int sk_receive_skb(struct sock *sk, struct sk_buff *skb,
1093 const int nested); 1098 const int nested);
1094 1099
1100static inline void sk_tx_queue_set(struct sock *sk, int tx_queue)
1101{
1102 sk->sk_tx_queue_mapping = tx_queue;
1103}
1104
1105static inline void sk_tx_queue_clear(struct sock *sk)
1106{
1107 sk->sk_tx_queue_mapping = -1;
1108}
1109
1110static inline int sk_tx_queue_get(const struct sock *sk)
1111{
1112 return sk->sk_tx_queue_mapping;
1113}
1114
1115static inline bool sk_tx_queue_recorded(const struct sock *sk)
1116{
1117 return (sk && sk->sk_tx_queue_mapping >= 0);
1118}
1119
1095static inline void sk_set_socket(struct sock *sk, struct socket *sock) 1120static inline void sk_set_socket(struct sock *sk, struct socket *sock)
1096{ 1121{
1122 sk_tx_queue_clear(sk);
1097 sk->sk_socket = sock; 1123 sk->sk_socket = sock;
1098} 1124}
1099 1125
@@ -1150,6 +1176,7 @@ __sk_dst_set(struct sock *sk, struct dst_entry *dst)
1150{ 1176{
1151 struct dst_entry *old_dst; 1177 struct dst_entry *old_dst;
1152 1178
1179 sk_tx_queue_clear(sk);
1153 old_dst = sk->sk_dst_cache; 1180 old_dst = sk->sk_dst_cache;
1154 sk->sk_dst_cache = dst; 1181 sk->sk_dst_cache = dst;
1155 dst_release(old_dst); 1182 dst_release(old_dst);
@@ -1168,6 +1195,7 @@ __sk_dst_reset(struct sock *sk)
1168{ 1195{
1169 struct dst_entry *old_dst; 1196 struct dst_entry *old_dst;
1170 1197
1198 sk_tx_queue_clear(sk);
1171 old_dst = sk->sk_dst_cache; 1199 old_dst = sk->sk_dst_cache;
1172 sk->sk_dst_cache = NULL; 1200 sk->sk_dst_cache = NULL;
1173 dst_release(old_dst); 1201 dst_release(old_dst);
@@ -1396,7 +1424,7 @@ static inline unsigned long sock_wspace(struct sock *sk)
1396 1424
1397static inline void sk_wake_async(struct sock *sk, int how, int band) 1425static inline void sk_wake_async(struct sock *sk, int how, int band)
1398{ 1426{
1399 if (sk->sk_socket && sk->sk_socket->fasync_list) 1427 if (sock_flag(sk, SOCK_FASYNC))
1400 sock_wake_async(sk->sk_socket, how, band); 1428 sock_wake_async(sk->sk_socket, how, band);
1401} 1429}
1402 1430
@@ -1492,6 +1520,8 @@ sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)
1492 sk->sk_stamp = kt; 1520 sk->sk_stamp = kt;
1493} 1521}
1494 1522
1523extern void sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk, struct sk_buff *skb);
1524
1495/** 1525/**
1496 * sock_tx_timestamp - checks whether the outgoing packet is to be time stamped 1526 * sock_tx_timestamp - checks whether the outgoing packet is to be time stamped
1497 * @msg: outgoing packet 1527 * @msg: outgoing packet
diff --git a/include/net/tc_act/tc_skbedit.h b/include/net/tc_act/tc_skbedit.h
index 6abb3ed3ebf7..e103fe02f375 100644
--- a/include/net/tc_act/tc_skbedit.h
+++ b/include/net/tc_act/tc_skbedit.h
@@ -26,7 +26,9 @@ struct tcf_skbedit {
26 struct tcf_common common; 26 struct tcf_common common;
27 u32 flags; 27 u32 flags;
28 u32 priority; 28 u32 priority;
29 u32 mark;
29 u16 queue_mapping; 30 u16 queue_mapping;
31 /* XXX: 16-bit pad here? */
30}; 32};
31#define to_skbedit(pc) \ 33#define to_skbedit(pc) \
32 container_of(pc, struct tcf_skbedit, common) 34 container_of(pc, struct tcf_skbedit, common)
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 03a49c703377..bf20f88fd033 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -359,8 +359,7 @@ TCP_ECN_create_request(struct request_sock *req, struct tcphdr *th)
359 inet_rsk(req)->ecn_ok = 1; 359 inet_rsk(req)->ecn_ok = 1;
360} 360}
361 361
362enum tcp_tw_status 362enum tcp_tw_status {
363{
364 TCP_TW_SUCCESS = 0, 363 TCP_TW_SUCCESS = 0,
365 TCP_TW_RST = 1, 364 TCP_TW_RST = 1,
366 TCP_TW_ACK = 2, 365 TCP_TW_ACK = 2,
@@ -409,7 +408,8 @@ extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk,
409 408
410extern void tcp_parse_options(struct sk_buff *skb, 409extern void tcp_parse_options(struct sk_buff *skb,
411 struct tcp_options_received *opt_rx, 410 struct tcp_options_received *opt_rx,
412 int estab); 411 int estab,
412 struct dst_entry *dst);
413 413
414extern u8 *tcp_parse_md5sig_option(struct tcphdr *th); 414extern u8 *tcp_parse_md5sig_option(struct tcphdr *th);
415 415
diff --git a/include/net/udp.h b/include/net/udp.h
index f98abd2ce709..22aa2e7eb1d7 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -54,12 +54,19 @@ struct udp_hslot {
54 struct hlist_nulls_head head; 54 struct hlist_nulls_head head;
55 spinlock_t lock; 55 spinlock_t lock;
56} __attribute__((aligned(2 * sizeof(long)))); 56} __attribute__((aligned(2 * sizeof(long))));
57
57struct udp_table { 58struct udp_table {
58 struct udp_hslot hash[UDP_HTABLE_SIZE]; 59 struct udp_hslot *hash;
60 unsigned int mask;
61 unsigned int log;
59}; 62};
60extern struct udp_table udp_table; 63extern struct udp_table udp_table;
61extern void udp_table_init(struct udp_table *); 64extern void udp_table_init(struct udp_table *, const char *);
62 65static inline struct udp_hslot *udp_hashslot(struct udp_table *table,
66 struct net *net, unsigned num)
67{
68 return &table->hash[udp_hashfn(net, num, table->mask)];
69}
63 70
64/* Note: this must match 'valbool' in sock_setsockopt */ 71/* Note: this must match 'valbool' in sock_setsockopt */
65#define UDP_CSUM_NOXMIT 1 72#define UDP_CSUM_NOXMIT 1
diff --git a/include/net/wext.h b/include/net/wext.h
index 3f2b94de2cfa..4f6e7423174c 100644
--- a/include/net/wext.h
+++ b/include/net/wext.h
@@ -1,29 +1,19 @@
1#ifndef __NET_WEXT_H 1#ifndef __NET_WEXT_H
2#define __NET_WEXT_H 2#define __NET_WEXT_H
3 3
4/* 4#include <net/iw_handler.h>
5 * wireless extensions interface to the core code
6 */
7 5
8struct net; 6struct net;
9 7
10#ifdef CONFIG_WIRELESS_EXT 8#ifdef CONFIG_WEXT_CORE
11extern int wext_proc_init(struct net *net);
12extern void wext_proc_exit(struct net *net);
13extern int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd, 9extern int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
14 void __user *arg); 10 void __user *arg);
15extern int compat_wext_handle_ioctl(struct net *net, unsigned int cmd, 11extern int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
16 unsigned long arg); 12 unsigned long arg);
13
17extern struct iw_statistics *get_wireless_stats(struct net_device *dev); 14extern struct iw_statistics *get_wireless_stats(struct net_device *dev);
15extern int call_commit_handler(struct net_device *dev);
18#else 16#else
19static inline int wext_proc_init(struct net *net)
20{
21 return 0;
22}
23static inline void wext_proc_exit(struct net *net)
24{
25 return;
26}
27static inline int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd, 17static inline int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
28 void __user *arg) 18 void __user *arg)
29{ 19{
@@ -36,4 +26,35 @@ static inline int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
36} 26}
37#endif 27#endif
38 28
29#ifdef CONFIG_WEXT_PROC
30extern int wext_proc_init(struct net *net);
31extern void wext_proc_exit(struct net *net);
32#else
33static inline int wext_proc_init(struct net *net)
34{
35 return 0;
36}
37static inline void wext_proc_exit(struct net *net)
38{
39 return;
40}
41#endif
42
43#ifdef CONFIG_WEXT_PRIV
44int ioctl_private_call(struct net_device *dev, struct iwreq *iwr,
45 unsigned int cmd, struct iw_request_info *info,
46 iw_handler handler);
47int compat_private_call(struct net_device *dev, struct iwreq *iwr,
48 unsigned int cmd, struct iw_request_info *info,
49 iw_handler handler);
50int iw_handler_get_private(struct net_device * dev,
51 struct iw_request_info * info,
52 union iwreq_data * wrqu,
53 char * extra);
54#else
55#define ioctl_private_call NULL
56#define compat_private_call NULL
57#endif
58
59
39#endif /* __NET_WEXT_H */ 60#endif /* __NET_WEXT_H */
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 223e90a44824..7f38ef509957 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -121,8 +121,7 @@ struct xfrm_state_walk {
121}; 121};
122 122
123/* Full description of state of transformer. */ 123/* Full description of state of transformer. */
124struct xfrm_state 124struct xfrm_state {
125{
126#ifdef CONFIG_NET_NS 125#ifdef CONFIG_NET_NS
127 struct net *xs_net; 126 struct net *xs_net;
128#endif 127#endif
@@ -237,8 +236,7 @@ enum {
237}; 236};
238 237
239/* callback structure passed from either netlink or pfkey */ 238/* callback structure passed from either netlink or pfkey */
240struct km_event 239struct km_event {
241{
242 union { 240 union {
243 u32 hard; 241 u32 hard;
244 u32 proto; 242 u32 proto;
@@ -313,8 +311,7 @@ extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
313 311
314extern void xfrm_state_delete_tunnel(struct xfrm_state *x); 312extern void xfrm_state_delete_tunnel(struct xfrm_state *x);
315 313
316struct xfrm_type 314struct xfrm_type {
317{
318 char *description; 315 char *description;
319 struct module *owner; 316 struct module *owner;
320 __u8 proto; 317 __u8 proto;
@@ -420,8 +417,7 @@ static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipp
420 return x->inner_mode_iaf; 417 return x->inner_mode_iaf;
421} 418}
422 419
423struct xfrm_tmpl 420struct xfrm_tmpl {
424{
425/* id in template is interpreted as: 421/* id in template is interpreted as:
426 * daddr - destination of tunnel, may be zero for transport mode. 422 * daddr - destination of tunnel, may be zero for transport mode.
427 * spi - zero to acquire spi. Not zero if spi is static, then 423 * spi - zero to acquire spi. Not zero if spi is static, then
@@ -468,8 +464,7 @@ struct xfrm_policy_walk {
468 u32 seq; 464 u32 seq;
469}; 465};
470 466
471struct xfrm_policy 467struct xfrm_policy {
472{
473#ifdef CONFIG_NET_NS 468#ifdef CONFIG_NET_NS
474 struct net *xp_net; 469 struct net *xp_net;
475#endif 470#endif
@@ -538,8 +533,7 @@ struct xfrm_migrate {
538/* default seq threshold size */ 533/* default seq threshold size */
539#define XFRM_AE_SEQT_SIZE 2 534#define XFRM_AE_SEQT_SIZE 2
540 535
541struct xfrm_mgr 536struct xfrm_mgr {
542{
543 struct list_head list; 537 struct list_head list;
544 char *id; 538 char *id;
545 int (*notify)(struct xfrm_state *x, struct km_event *c); 539 int (*notify)(struct xfrm_state *x, struct km_event *c);
@@ -626,8 +620,7 @@ struct xfrm_spi_skb_cb {
626#define XFRM_SPI_SKB_CB(__skb) ((struct xfrm_spi_skb_cb *)&((__skb)->cb[0])) 620#define XFRM_SPI_SKB_CB(__skb) ((struct xfrm_spi_skb_cb *)&((__skb)->cb[0]))
627 621
628/* Audit Information */ 622/* Audit Information */
629struct xfrm_audit 623struct xfrm_audit {
630{
631 u32 secid; 624 u32 secid;
632 uid_t loginuid; 625 uid_t loginuid;
633 u32 sessionid; 626 u32 sessionid;
@@ -871,8 +864,7 @@ static inline int xfrm_sec_ctx_match(struct xfrm_sec_ctx *s1, struct xfrm_sec_ct
871 * bundles differing by session id. All the bundles grow from a parent 864 * bundles differing by session id. All the bundles grow from a parent
872 * policy rule. 865 * policy rule.
873 */ 866 */
874struct xfrm_dst 867struct xfrm_dst {
875{
876 union { 868 union {
877 struct dst_entry dst; 869 struct dst_entry dst;
878 struct rtable rt; 870 struct rtable rt;
@@ -907,8 +899,7 @@ static inline void xfrm_dst_destroy(struct xfrm_dst *xdst)
907 899
908extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); 900extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev);
909 901
910struct sec_path 902struct sec_path {
911{
912 atomic_t refcnt; 903 atomic_t refcnt;
913 int len; 904 int len;
914 struct xfrm_state *xvec[XFRM_MAX_DEPTH]; 905 struct xfrm_state *xvec[XFRM_MAX_DEPTH];
@@ -1500,9 +1491,6 @@ struct scatterlist;
1500typedef int (icv_update_fn_t)(struct hash_desc *, struct scatterlist *, 1491typedef int (icv_update_fn_t)(struct hash_desc *, struct scatterlist *,
1501 unsigned int); 1492 unsigned int);
1502 1493
1503extern int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *tfm,
1504 int offset, int len, icv_update_fn_t icv_update);
1505
1506static inline int xfrm_addr_cmp(xfrm_address_t *a, xfrm_address_t *b, 1494static inline int xfrm_addr_cmp(xfrm_address_t *a, xfrm_address_t *b,
1507 int family) 1495 int family)
1508{ 1496{
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 9a3b49865173..d696a692d94a 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -279,7 +279,7 @@ extern struct pccard_resource_ops pccard_iodyn_ops;
279extern struct pccard_resource_ops pccard_nonstatic_ops; 279extern struct pccard_resource_ops pccard_nonstatic_ops;
280 280
281/* socket drivers are expected to use these callbacks in their .drv struct */ 281/* socket drivers are expected to use these callbacks in their .drv struct */
282extern int pcmcia_socket_dev_suspend(struct device *dev, pm_message_t state); 282extern int pcmcia_socket_dev_suspend(struct device *dev);
283extern int pcmcia_socket_dev_resume(struct device *dev); 283extern int pcmcia_socket_dev_resume(struct device *dev);
284 284
285/* socket drivers use this callback in their IRQ handler */ 285/* socket drivers use this callback in their IRQ handler */
diff --git a/include/trace/events/block.h b/include/trace/events/block.h
index d86af94691c2..00405b5f624a 100644
--- a/include/trace/events/block.h
+++ b/include/trace/events/block.h
@@ -488,6 +488,39 @@ TRACE_EVENT(block_remap,
488 (unsigned long long)__entry->old_sector) 488 (unsigned long long)__entry->old_sector)
489); 489);
490 490
491TRACE_EVENT(block_rq_remap,
492
493 TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev,
494 sector_t from),
495
496 TP_ARGS(q, rq, dev, from),
497
498 TP_STRUCT__entry(
499 __field( dev_t, dev )
500 __field( sector_t, sector )
501 __field( unsigned int, nr_sector )
502 __field( dev_t, old_dev )
503 __field( sector_t, old_sector )
504 __array( char, rwbs, 6 )
505 ),
506
507 TP_fast_assign(
508 __entry->dev = disk_devt(rq->rq_disk);
509 __entry->sector = blk_rq_pos(rq);
510 __entry->nr_sector = blk_rq_sectors(rq);
511 __entry->old_dev = dev;
512 __entry->old_sector = from;
513 blk_fill_rwbs_rq(__entry->rwbs, rq);
514 ),
515
516 TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
517 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
518 (unsigned long long)__entry->sector,
519 __entry->nr_sector,
520 MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
521 (unsigned long long)__entry->old_sector)
522);
523
491#endif /* _TRACE_BLOCK_H */ 524#endif /* _TRACE_BLOCK_H */
492 525
493/* This part must be outside protection */ 526/* This part must be outside protection */
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index c1bd8f1e8b94..d09550bf3f95 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -11,6 +11,7 @@ struct ext4_allocation_context;
11struct ext4_allocation_request; 11struct ext4_allocation_request;
12struct ext4_prealloc_space; 12struct ext4_prealloc_space;
13struct ext4_inode_info; 13struct ext4_inode_info;
14struct mpage_da_data;
14 15
15#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) 16#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
16 17
@@ -236,6 +237,7 @@ TRACE_EVENT(ext4_da_writepages,
236 __field( char, for_kupdate ) 237 __field( char, for_kupdate )
237 __field( char, for_reclaim ) 238 __field( char, for_reclaim )
238 __field( char, range_cyclic ) 239 __field( char, range_cyclic )
240 __field( pgoff_t, writeback_index )
239 ), 241 ),
240 242
241 TP_fast_assign( 243 TP_fast_assign(
@@ -249,15 +251,17 @@ TRACE_EVENT(ext4_da_writepages,
249 __entry->for_kupdate = wbc->for_kupdate; 251 __entry->for_kupdate = wbc->for_kupdate;
250 __entry->for_reclaim = wbc->for_reclaim; 252 __entry->for_reclaim = wbc->for_reclaim;
251 __entry->range_cyclic = wbc->range_cyclic; 253 __entry->range_cyclic = wbc->range_cyclic;
254 __entry->writeback_index = inode->i_mapping->writeback_index;
252 ), 255 ),
253 256
254 TP_printk("dev %s ino %lu nr_to_write %ld pages_skipped %ld range_start %llu range_end %llu nonblocking %d for_kupdate %d for_reclaim %d range_cyclic %d", 257 TP_printk("dev %s ino %lu nr_to_write %ld pages_skipped %ld range_start %llu range_end %llu nonblocking %d for_kupdate %d for_reclaim %d range_cyclic %d writeback_index %lu",
255 jbd2_dev_to_name(__entry->dev), 258 jbd2_dev_to_name(__entry->dev),
256 (unsigned long) __entry->ino, __entry->nr_to_write, 259 (unsigned long) __entry->ino, __entry->nr_to_write,
257 __entry->pages_skipped, __entry->range_start, 260 __entry->pages_skipped, __entry->range_start,
258 __entry->range_end, __entry->nonblocking, 261 __entry->range_end, __entry->nonblocking,
259 __entry->for_kupdate, __entry->for_reclaim, 262 __entry->for_kupdate, __entry->for_reclaim,
260 __entry->range_cyclic) 263 __entry->range_cyclic,
264 (unsigned long) __entry->writeback_index)
261); 265);
262 266
263TRACE_EVENT(ext4_da_write_pages, 267TRACE_EVENT(ext4_da_write_pages,
@@ -309,6 +313,7 @@ TRACE_EVENT(ext4_da_writepages_result,
309 __field( char, encountered_congestion ) 313 __field( char, encountered_congestion )
310 __field( char, more_io ) 314 __field( char, more_io )
311 __field( char, no_nrwrite_index_update ) 315 __field( char, no_nrwrite_index_update )
316 __field( pgoff_t, writeback_index )
312 ), 317 ),
313 318
314 TP_fast_assign( 319 TP_fast_assign(
@@ -320,14 +325,16 @@ TRACE_EVENT(ext4_da_writepages_result,
320 __entry->encountered_congestion = wbc->encountered_congestion; 325 __entry->encountered_congestion = wbc->encountered_congestion;
321 __entry->more_io = wbc->more_io; 326 __entry->more_io = wbc->more_io;
322 __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update; 327 __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update;
328 __entry->writeback_index = inode->i_mapping->writeback_index;
323 ), 329 ),
324 330
325 TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld congestion %d more_io %d no_nrwrite_index_update %d", 331 TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld congestion %d more_io %d no_nrwrite_index_update %d writeback_index %lu",
326 jbd2_dev_to_name(__entry->dev), 332 jbd2_dev_to_name(__entry->dev),
327 (unsigned long) __entry->ino, __entry->ret, 333 (unsigned long) __entry->ino, __entry->ret,
328 __entry->pages_written, __entry->pages_skipped, 334 __entry->pages_written, __entry->pages_skipped,
329 __entry->encountered_congestion, __entry->more_io, 335 __entry->encountered_congestion, __entry->more_io,
330 __entry->no_nrwrite_index_update) 336 __entry->no_nrwrite_index_update,
337 (unsigned long) __entry->writeback_index)
331); 338);
332 339
333TRACE_EVENT(ext4_da_write_begin, 340TRACE_EVENT(ext4_da_write_begin,
@@ -737,6 +744,169 @@ TRACE_EVENT(ext4_alloc_da_blocks,
737 __entry->data_blocks, __entry->meta_blocks) 744 __entry->data_blocks, __entry->meta_blocks)
738); 745);
739 746
747TRACE_EVENT(ext4_mballoc_alloc,
748 TP_PROTO(struct ext4_allocation_context *ac),
749
750 TP_ARGS(ac),
751
752 TP_STRUCT__entry(
753 __field( dev_t, dev )
754 __field( ino_t, ino )
755 __field( __u16, found )
756 __field( __u16, groups )
757 __field( __u16, buddy )
758 __field( __u16, flags )
759 __field( __u16, tail )
760 __field( __u8, cr )
761 __field( __u32, orig_logical )
762 __field( int, orig_start )
763 __field( __u32, orig_group )
764 __field( int, orig_len )
765 __field( __u32, goal_logical )
766 __field( int, goal_start )
767 __field( __u32, goal_group )
768 __field( int, goal_len )
769 __field( __u32, result_logical )
770 __field( int, result_start )
771 __field( __u32, result_group )
772 __field( int, result_len )
773 ),
774
775 TP_fast_assign(
776 __entry->dev = ac->ac_inode->i_sb->s_dev;
777 __entry->ino = ac->ac_inode->i_ino;
778 __entry->found = ac->ac_found;
779 __entry->flags = ac->ac_flags;
780 __entry->groups = ac->ac_groups_scanned;
781 __entry->buddy = ac->ac_buddy;
782 __entry->tail = ac->ac_tail;
783 __entry->cr = ac->ac_criteria;
784 __entry->orig_logical = ac->ac_o_ex.fe_logical;
785 __entry->orig_start = ac->ac_o_ex.fe_start;
786 __entry->orig_group = ac->ac_o_ex.fe_group;
787 __entry->orig_len = ac->ac_o_ex.fe_len;
788 __entry->goal_logical = ac->ac_g_ex.fe_logical;
789 __entry->goal_start = ac->ac_g_ex.fe_start;
790 __entry->goal_group = ac->ac_g_ex.fe_group;
791 __entry->goal_len = ac->ac_g_ex.fe_len;
792 __entry->result_logical = ac->ac_f_ex.fe_logical;
793 __entry->result_start = ac->ac_f_ex.fe_start;
794 __entry->result_group = ac->ac_f_ex.fe_group;
795 __entry->result_len = ac->ac_f_ex.fe_len;
796 ),
797
798 TP_printk("dev %s inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
799 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
800 "tail %u broken %u",
801 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
802 __entry->orig_group, __entry->orig_start,
803 __entry->orig_len, __entry->orig_logical,
804 __entry->goal_group, __entry->goal_start,
805 __entry->goal_len, __entry->goal_logical,
806 __entry->result_group, __entry->result_start,
807 __entry->result_len, __entry->result_logical,
808 __entry->found, __entry->groups, __entry->cr,
809 __entry->flags, __entry->tail,
810 __entry->buddy ? 1 << __entry->buddy : 0)
811);
812
813TRACE_EVENT(ext4_mballoc_prealloc,
814 TP_PROTO(struct ext4_allocation_context *ac),
815
816 TP_ARGS(ac),
817
818 TP_STRUCT__entry(
819 __field( dev_t, dev )
820 __field( ino_t, ino )
821 __field( __u32, orig_logical )
822 __field( int, orig_start )
823 __field( __u32, orig_group )
824 __field( int, orig_len )
825 __field( __u32, result_logical )
826 __field( int, result_start )
827 __field( __u32, result_group )
828 __field( int, result_len )
829 ),
830
831 TP_fast_assign(
832 __entry->dev = ac->ac_inode->i_sb->s_dev;
833 __entry->ino = ac->ac_inode->i_ino;
834 __entry->orig_logical = ac->ac_o_ex.fe_logical;
835 __entry->orig_start = ac->ac_o_ex.fe_start;
836 __entry->orig_group = ac->ac_o_ex.fe_group;
837 __entry->orig_len = ac->ac_o_ex.fe_len;
838 __entry->result_logical = ac->ac_b_ex.fe_logical;
839 __entry->result_start = ac->ac_b_ex.fe_start;
840 __entry->result_group = ac->ac_b_ex.fe_group;
841 __entry->result_len = ac->ac_b_ex.fe_len;
842 ),
843
844 TP_printk("dev %s inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
845 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
846 __entry->orig_group, __entry->orig_start,
847 __entry->orig_len, __entry->orig_logical,
848 __entry->result_group, __entry->result_start,
849 __entry->result_len, __entry->result_logical)
850);
851
852TRACE_EVENT(ext4_mballoc_discard,
853 TP_PROTO(struct ext4_allocation_context *ac),
854
855 TP_ARGS(ac),
856
857 TP_STRUCT__entry(
858 __field( dev_t, dev )
859 __field( ino_t, ino )
860 __field( __u32, result_logical )
861 __field( int, result_start )
862 __field( __u32, result_group )
863 __field( int, result_len )
864 ),
865
866 TP_fast_assign(
867 __entry->dev = ac->ac_inode->i_sb->s_dev;
868 __entry->ino = ac->ac_inode->i_ino;
869 __entry->result_logical = ac->ac_b_ex.fe_logical;
870 __entry->result_start = ac->ac_b_ex.fe_start;
871 __entry->result_group = ac->ac_b_ex.fe_group;
872 __entry->result_len = ac->ac_b_ex.fe_len;
873 ),
874
875 TP_printk("dev %s inode %lu extent %u/%d/%u@%u ",
876 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
877 __entry->result_group, __entry->result_start,
878 __entry->result_len, __entry->result_logical)
879);
880
881TRACE_EVENT(ext4_mballoc_free,
882 TP_PROTO(struct ext4_allocation_context *ac),
883
884 TP_ARGS(ac),
885
886 TP_STRUCT__entry(
887 __field( dev_t, dev )
888 __field( ino_t, ino )
889 __field( __u32, result_logical )
890 __field( int, result_start )
891 __field( __u32, result_group )
892 __field( int, result_len )
893 ),
894
895 TP_fast_assign(
896 __entry->dev = ac->ac_inode->i_sb->s_dev;
897 __entry->ino = ac->ac_inode->i_ino;
898 __entry->result_logical = ac->ac_b_ex.fe_logical;
899 __entry->result_start = ac->ac_b_ex.fe_start;
900 __entry->result_group = ac->ac_b_ex.fe_group;
901 __entry->result_len = ac->ac_b_ex.fe_len;
902 ),
903
904 TP_printk("dev %s inode %lu extent %u/%d/%u@%u ",
905 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
906 __entry->result_group, __entry->result_start,
907 __entry->result_len, __entry->result_logical)
908);
909
740#endif /* _TRACE_EXT4_H */ 910#endif /* _TRACE_EXT4_H */
741 911
742/* This part must be outside protection */ 912/* This part must be outside protection */
diff --git a/include/trace/events/jbd2.h b/include/trace/events/jbd2.h
index b851f0b4701c..3c60b75adb9e 100644
--- a/include/trace/events/jbd2.h
+++ b/include/trace/events/jbd2.h
@@ -7,6 +7,9 @@
7#include <linux/jbd2.h> 7#include <linux/jbd2.h>
8#include <linux/tracepoint.h> 8#include <linux/tracepoint.h>
9 9
10struct transaction_chp_stats_s;
11struct transaction_run_stats_s;
12
10TRACE_EVENT(jbd2_checkpoint, 13TRACE_EVENT(jbd2_checkpoint,
11 14
12 TP_PROTO(journal_t *journal, int result), 15 TP_PROTO(journal_t *journal, int result),
@@ -162,6 +165,81 @@ TRACE_EVENT(jbd2_submit_inode_data,
162 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino) 165 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino)
163); 166);
164 167
168TRACE_EVENT(jbd2_run_stats,
169 TP_PROTO(dev_t dev, unsigned long tid,
170 struct transaction_run_stats_s *stats),
171
172 TP_ARGS(dev, tid, stats),
173
174 TP_STRUCT__entry(
175 __field( dev_t, dev )
176 __field( unsigned long, tid )
177 __field( unsigned long, wait )
178 __field( unsigned long, running )
179 __field( unsigned long, locked )
180 __field( unsigned long, flushing )
181 __field( unsigned long, logging )
182 __field( __u32, handle_count )
183 __field( __u32, blocks )
184 __field( __u32, blocks_logged )
185 ),
186
187 TP_fast_assign(
188 __entry->dev = dev;
189 __entry->tid = tid;
190 __entry->wait = stats->rs_wait;
191 __entry->running = stats->rs_running;
192 __entry->locked = stats->rs_locked;
193 __entry->flushing = stats->rs_flushing;
194 __entry->logging = stats->rs_logging;
195 __entry->handle_count = stats->rs_handle_count;
196 __entry->blocks = stats->rs_blocks;
197 __entry->blocks_logged = stats->rs_blocks_logged;
198 ),
199
200 TP_printk("dev %s tid %lu wait %u running %u locked %u flushing %u "
201 "logging %u handle_count %u blocks %u blocks_logged %u",
202 jbd2_dev_to_name(__entry->dev), __entry->tid,
203 jiffies_to_msecs(__entry->wait),
204 jiffies_to_msecs(__entry->running),
205 jiffies_to_msecs(__entry->locked),
206 jiffies_to_msecs(__entry->flushing),
207 jiffies_to_msecs(__entry->logging),
208 __entry->handle_count, __entry->blocks,
209 __entry->blocks_logged)
210);
211
212TRACE_EVENT(jbd2_checkpoint_stats,
213 TP_PROTO(dev_t dev, unsigned long tid,
214 struct transaction_chp_stats_s *stats),
215
216 TP_ARGS(dev, tid, stats),
217
218 TP_STRUCT__entry(
219 __field( dev_t, dev )
220 __field( unsigned long, tid )
221 __field( unsigned long, chp_time )
222 __field( __u32, forced_to_close )
223 __field( __u32, written )
224 __field( __u32, dropped )
225 ),
226
227 TP_fast_assign(
228 __entry->dev = dev;
229 __entry->tid = tid;
230 __entry->chp_time = stats->cs_chp_time;
231 __entry->forced_to_close= stats->cs_forced_to_close;
232 __entry->written = stats->cs_written;
233 __entry->dropped = stats->cs_dropped;
234 ),
235
236 TP_printk("dev %s tid %lu chp_time %u forced_to_close %u "
237 "written %u dropped %u",
238 jbd2_dev_to_name(__entry->dev), __entry->tid,
239 jiffies_to_msecs(__entry->chp_time),
240 __entry->forced_to_close, __entry->written, __entry->dropped)
241);
242
165#endif /* _TRACE_JBD2_H */ 243#endif /* _TRACE_JBD2_H */
166 244
167/* This part must be outside protection */ 245/* This part must be outside protection */
diff --git a/include/trace/events/workqueue.h b/include/trace/events/workqueue.h
index fcfd9a1e4b96..e4612dbd7ba6 100644
--- a/include/trace/events/workqueue.h
+++ b/include/trace/events/workqueue.h
@@ -26,7 +26,7 @@ TRACE_EVENT(workqueue_insertion,
26 __entry->func = work->func; 26 __entry->func = work->func;
27 ), 27 ),
28 28
29 TP_printk("thread=%s:%d func=%pF", __entry->thread_comm, 29 TP_printk("thread=%s:%d func=%pf", __entry->thread_comm,
30 __entry->thread_pid, __entry->func) 30 __entry->thread_pid, __entry->func)
31); 31);
32 32
@@ -48,7 +48,7 @@ TRACE_EVENT(workqueue_execution,
48 __entry->func = work->func; 48 __entry->func = work->func;
49 ), 49 ),
50 50
51 TP_printk("thread=%s:%d func=%pF", __entry->thread_comm, 51 TP_printk("thread=%s:%d func=%pf", __entry->thread_comm,
52 __entry->thread_pid, __entry->func) 52 __entry->thread_pid, __entry->func)
53); 53);
54 54