[SK_BUFF]: Convert skb->tail to sk_buff_data_t
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 20 Apr 2007 03:29:13 +0000 (20:29 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 26 Apr 2007 05:26:28 +0000 (22:26 -0700)
commit27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26
tree5a267e40f9b94014be38dad5de0a52b6628834e0
parentbe8bd86321fa7f06359d866ef61fb4d2f3e9dce9
[SK_BUFF]: Convert skb->tail to sk_buff_data_t

So that it is also an offset from skb->head, reduces its size from 8 to 4 bytes
on 64bit architectures, allowing us to combine the 4 bytes hole left by the
layer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4
64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...
:-)

Many calculations that previously required that skb->{transport,network,
mac}_header be first converted to a pointer now can be done directly, being
meaningful as offsets or pointers.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
110 files changed:
arch/ia64/sn/kernel/xpnet.c
drivers/atm/he.c
drivers/atm/idt77252.c
drivers/atm/nicstar.c
drivers/infiniband/hw/amso1100/c2.c
drivers/isdn/i4l/isdn_net.c
drivers/media/dvb/dvb-core/dvb_net.c
drivers/net/cris/eth_v10.c
drivers/net/cxgb3/sge.c
drivers/net/e1000/e1000_main.c
drivers/net/ibm_emac/ibm_emac_core.c
drivers/net/macb.c
drivers/net/pcmcia/nmclan_cs.c
drivers/net/s2io.c
drivers/net/tulip/uli526x.c
drivers/net/wan/hdlc_fr.c
drivers/net/wan/lmc/lmc_main.c
drivers/net/wireless/hostap/hostap_80211_rx.c
drivers/s390/net/ctcmain.c
drivers/s390/net/netiucv.c
drivers/usb/atm/usbatm.c
drivers/usb/net/asix.c
drivers/usb/net/gl620a.c
drivers/usb/net/net1080.c
drivers/usb/net/rndis_host.c
include/linux/netfilter/nfnetlink.h
include/linux/netlink.h
include/linux/rtnetlink.h
include/linux/skbuff.h
include/net/inet_ecn.h
include/net/netlink.h
include/net/pkt_cls.h
kernel/audit.c
net/atm/lec.c
net/bluetooth/rfcomm/core.c
net/core/dev.c
net/core/filter.c
net/core/gen_stats.c
net/core/pktgen.c
net/core/skbuff.c
net/core/wireless.c
net/decnet/dn_nsp_out.c
net/decnet/dn_route.c
net/decnet/dn_table.c
net/decnet/netfilter/dn_rtmsg.c
net/econet/af_econet.c
net/ieee80211/ieee80211_rx.c
net/ipv4/esp4.c
net/ipv4/icmp.c
net/ipv4/igmp.c
net/ipv4/inet_diag.c
net/ipv4/ip_sockglue.c
net/ipv4/ipmr.c
net/ipv4/ipvs/ip_vs_ftp.c
net/ipv4/netfilter/arpt_mangle.c
net/ipv4/netfilter/ip_queue.c
net/ipv4/netfilter/nf_nat_helper.c
net/ipv4/tcp.c
net/ipv4/tcp_output.c
net/ipv6/datagram.c
net/ipv6/esp6.c
net/ipv6/exthdrs.c
net/ipv6/icmp.c
net/ipv6/ip6_output.c
net/ipv6/mcast.c
net/ipv6/mip6.c
net/ipv6/ndisc.c
net/ipv6/netfilter/ip6_queue.c
net/ipv6/raw.c
net/irda/ircomm/ircomm_param.c
net/irda/irlan/irlan_common.c
net/irda/qos.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nfnetlink_log.c
net/netfilter/nfnetlink_queue.c
net/netlink/af_netlink.c
net/packet/af_packet.c
net/sched/act_api.c
net/sched/act_gact.c
net/sched/act_ipt.c
net/sched/act_mirred.c
net/sched/act_pedit.c
net/sched/act_police.c
net/sched/act_simple.c
net/sched/cls_api.c
net/sched/cls_basic.c
net/sched/cls_fw.c
net/sched/cls_route.c
net/sched/cls_rsvp.h
net/sched/cls_tcindex.c
net/sched/cls_u32.c
net/sched/ematch.c
net/sched/sch_api.c
net/sched/sch_atm.c
net/sched/sch_cbq.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_ingress.c
net/sched/sch_netem.c
net/sched/sch_prio.c
net/sched/sch_sfq.c
net/sched/sch_tbf.c
net/sctp/input.c
net/sctp/inqueue.c
net/sctp/sm_make_chunk.c
net/sctp/sm_statefuns.c
net/tipc/config.c
net/tipc/socket.c
net/xfrm/xfrm_user.c
security/selinux/netlink.c