Greg Rose
115c9b8192
rtnetlink: Fix problem with buffer allocation
...
Implement a new netlink attribute type IFLA_EXT_MASK. The mask
is a 32 bit value that can be used to indicate to the kernel that
certain extended ifinfo values are requested by the user application.
At this time the only mask value defined is RTEXT_FILTER_VF to
indicate that the user wants the ifinfo dump to send information
about the VFs belonging to the interface.
This patch fixes a bug in which certain applications do not have
large enough buffers to accommodate the extra information returned
by the kernel with large numbers of SR-IOV virtual functions.
Those applications will not send the new netlink attribute with
the interface info dump request netlink messages so they will
not get unexpectedly large request buffers returned by the kernel.
Modifies the rtnl_calcit function to traverse the list of net
devices and compute the minimum buffer size that can hold the
info dumps of all matching devices based upon the filter passed
in via the new netlink attribute filter mask. If no filter
mask is sent then the buffer allocation defaults to NLMSG_GOODSIZE.
With this change it is possible to add yet to be defined netlink
attributes to the dump request which should make it fairly extensible
in the future.
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-02-21 16:56:45 -05:00
..
9p
9p: Reduce object size with CONFIG_NET_9P_DEBUG
2012-01-05 10:51:44 -06:00
bluetooth
Bluetooth: Remove usage of __cancel_delayed_work()
2012-02-15 13:09:26 +02:00
caif
caif-spi: Bugfix for dump upon device removal
2011-12-06 13:34:12 -05:00
irda
iucv
af_iucv: get rid of state IUCV_SEVERED
2011-12-20 14:05:03 -05:00
netfilter
Merge branch 'nf-next' of git://1984.lsi.us.es/net-next
2011-12-25 02:21:45 -05:00
netns
netns: Fail conspicously if someone uses net_generic at an inappropriate time.
2012-01-27 21:06:02 -05:00
nfc
NFC: Export a new attribute nfcid1 in target info
2012-01-04 14:30:43 -05:00
phonet
sctp
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2011-12-23 17:13:56 -05:00
tc_act
act_api.h
net: sched: constify tcf_proto and tc_action
2011-07-06 02:52:16 -07:00
addrconf.h
ipv6: Check RA for sllao when configuring optimistic ipv6 address (v2)
2012-01-04 15:53:20 -05:00
af_ieee802154.h
af_rxrpc.h
af_unix.h
af_unix: Move CINQ/COUTQ code to helpers
2011-12-30 16:45:45 -05:00
ah.h
arp.h
ipv6: Use universal hash for NDISC.
2011-12-28 15:06:58 -05:00
atmclip.h
atm: clip: Use device neigh support on top of "arp_tbl".
2011-11-30 18:51:03 -05:00
ax25.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
ax88796.h
cfg80211-wext.h
cfg80211: remove unused wext handler exports
2011-08-08 14:26:29 -04:00
cfg80211.h
kernel-doc: fix new warnings in cfg80211.h
2012-01-23 08:44:54 -08:00
checksum.h
cipso_ipv4.h
doc: Update the email address for Paul Moore in various source files
2011-08-01 17:58:33 -07:00
cls_cgroup.h
compat.h
net: Add sendmmsg socket system call
2011-05-05 11:10:14 -07:00
datalink.h
dcbevent.h
dcb: Add stub routines for !CONFIG_DCB
2011-10-06 15:49:51 -04:00
dcbnl.h
dcb: add DCBX mode to event notifier attributes
2011-10-06 15:49:51 -04:00
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsa.h
dsa: Include linux/if_ether.h to fix build error
2011-12-01 11:41:06 -05:00
dsfield.h
dst.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2011-12-23 17:13:56 -05:00
dst_ops.h
net: Rename the dst_opt default_mtu method to mtu
2011-11-26 14:29:50 -05:00
esp.h
ethoc.h
fib_rules.h
flow.h
ipv4: reset flowi parameters on route connect
2012-02-04 19:29:48 -05:00
flow_keys.h
flow_dissector: use a 64bit load/store
2011-11-29 13:17:03 -05:00
garp.h
garp: remove last synchronize_rcu() call
2011-05-12 17:46:56 -04:00
gen_stats.h
genetlink.h
genetlink: Add genl_notify()
2011-12-03 09:35:05 -08:00
gre.h
icmp.h
ipv4: reduce percpu needs for icmpmsg mibs
2011-11-09 16:04:20 -05:00
ieee80211_radiotap.h
wireless: move ieee80211chan2mhz macro
2011-11-11 12:32:50 -05:00
ieee802154.h
6LoWPAN: add fragmentation support
2011-11-14 00:19:42 -05:00
ieee802154_netdev.h
if_inet6.h
ipv6: updates to privacy addresses per RFC 4941.
2011-08-01 18:05:00 -07:00
inet6_connection_sock.h
inet: Pass flowi to ->queue_xmit().
2011-05-08 15:28:28 -07:00
inet6_hashtables.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
inet_common.h
inet_connection_sock.h
net: rename sk_clone to sk_clone_lock
2011-11-08 17:07:07 -05:00
inet_ecn.h
inet: add rfc 3168 extract in front of INET_ECN_encapsulate()
2011-10-22 01:25:23 -04:00
inet_frag.h
inet_hashtables.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
inet_sock.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
inet_timewait_sock.h
inet: remove rcu protection on tw_net
2011-12-14 13:34:55 -05:00
inetpeer.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2011-12-02 13:49:21 -05:00
ip.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
ip6_checksum.h
ip6_fib.h
IPv6: Avoid taking write lock for /proc/net/ipv6_route
2011-12-30 17:07:33 -05:00
ip6_route.h
Merge branch 'nf-next' of git://1984.lsi.us.es/net-next
2011-12-25 02:21:45 -05:00
ip6_tunnel.h
ip_fib.h
ip_vs.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2012-01-02 18:56:49 -05:00
ipcomp.h
ipconfig.h
ipip.h
ipv6.h
ipv6: Add fragment reporting to ipv6_skip_exthdr().
2011-12-03 09:35:10 -08:00
ipx.h
iw_handler.h
lapb.h
wan: make LAPB callbacks const
2011-09-16 19:20:20 -04:00
lib80211.h
include: replace linux/module.h with "struct module" wherever possible
2011-10-31 19:32:32 -04:00
llc.h
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
bonding,llc: Fix structure sizeof incompatibility for some PDUs
2011-05-13 15:13:24 -04:00
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
mac80211.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2012-01-08 13:21:22 -08:00
mip6.h
mld.h
ndisc.h
ipv6: Create fast inline ipv6 neigh lookup just like ipv4.
2011-12-28 15:41:23 -05:00
neighbour.h
ipv6: Use universal hash for NDISC.
2011-12-28 15:06:58 -05:00
net_namespace.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
net_ratelimit.h
net: Kill ratelimit.h dependency in linux/net.h
2011-05-27 13:41:33 -04:00
netdma.h
netevent.h
netlabel.h
doc: Update the email address for Paul Moore in various source files
2011-08-01 17:58:33 -07:00
netlink.h
netlink: clarify attribute length check documentation
2011-11-04 17:48:23 -04:00
netprio_cgroup.h
netprio_cgroup: fix wrong memory access when NETPRIO_CGROUP=m
2012-02-10 15:08:57 -05:00
netrom.h
nexthop.h
nl802154.h
p8022.h
ping.h
net: ping: fix build failure
2011-05-17 14:16:58 -04:00
pkt_cls.h
pkt_sched.h
net: sched: constify tcf_proto and tc_action
2011-07-06 02:52:16 -07:00
protocol.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
psnap.h
raw.h
rawv6.h
red.h
net_sched: sfq: add optional RED on top of SFQ
2012-01-12 20:05:28 -08:00
regulatory.h
cfg80211: pass DFS region to drivers through reg_notifier()
2011-11-21 16:20:41 -05:00
request_sock.h
tcp: Change possible SYN flooding messages
2011-09-15 14:49:43 -04:00
rose.h
route.h
ipv4: reset flowi parameters on route connect
2012-02-04 19:29:48 -05:00
rtnetlink.h
rtnetlink: Fix problem with buffer allocation
2012-02-21 16:56:45 -05:00
sch_generic.h
net: Make qdisc_skb_cb upper size bound explicit.
2012-02-09 13:50:34 -05:00
scm.h
af_unix: dont send SCM_CREDENTIALS by default
2011-09-28 13:29:50 -04:00
secure_seq.h
tcp: add const qualifiers where possible
2011-10-21 05:22:42 -04:00
slhc_vj.h
snmp.h
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2012-01-09 13:08:28 -08:00
sock.h
net: explicitly add jump_label.h header to sock.h
2012-01-26 17:13:26 -05:00
stp.h
tcp.h
net: Disambiguate kernel message
2012-02-01 14:41:50 -05:00
tcp_memcontrol.h
tcp buffer limitation: per-cgroup limit
2011-12-12 19:04:11 -05:00
tcp_states.h
timewait_sock.h
transp_v6.h
net: relax PKTINFO non local ipv6 udp xmit check
2011-08-30 17:39:01 -04:00
udp.h
net: use IS_ENABLED(CONFIG_IPV6)
2011-12-11 18:25:16 -05:00
udplite.h
udplite: fast-path computation of checksum coverage
2011-10-17 19:07:30 -04:00
wext.h
wimax.h
net: wimax: Remove of unused 'rfkill_input' pointer
2011-06-24 17:50:44 -07:00
wpan-phy.h
x25.h
x25device.h
xfrm.h
net: remove ipv6_addr_copy()
2011-11-22 16:43:32 -05:00