linux-xiaomi-chiron/net
Johannes Berg 3b0f31f2b8 genetlink: make policy common to family
Since maxattr is common, the policy can't really differ sanely,
so make it common as well.

The only user that did in fact manage to make a non-common policy
is taskstats, which has to be really careful about it (since it's
still using a common maxattr!). This is no longer supported, but
we can fake it using pre_doit.

This reduces the size of e.g. nl80211.o (which has lots of commands):

   text	   data	    bss	    dec	    hex	filename
 398745	  14323	   2240	 415308	  6564c	net/wireless/nl80211.o (before)
 397913	  14331	   2240	 414484	  65314	net/wireless/nl80211.o (after)
--------------------------------
   -832      +8       0    -824

Which is obviously just 8 bytes for each command, and an added 8
bytes for the new policy pointer. I'm not sure why the ops list is
counted as .text though.

Most of the code transformations were done using the following spatch:
    @ops@
    identifier OPS;
    expression POLICY;
    @@
    struct genl_ops OPS[] = {
    ...,
     {
    -	.policy = POLICY,
     },
    ...
    };

    @@
    identifier ops.OPS;
    expression ops.POLICY;
    identifier fam;
    expression M;
    @@
    struct genl_family fam = {
            .ops = OPS,
            .maxattr = M,
    +       .policy = POLICY,
            ...
    };

This also gets rid of devlink_nl_cmd_region_read_dumpit() accessing
the cb->data as ops, which we want to change in a later genl patch.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-03-22 10:38:23 -04:00
..
6lowpan
9p
802
8021q
appletalk appletalk: Fix potential NULL pointer dereference in unregister_snap_client 2019-03-15 11:25:48 -07:00
atm net: atm: Add another IS_ENABLED(CONFIG_COMPAT) in atm_dev_ioctl 2019-03-07 10:14:50 -08:00
ax25
batman-adv genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
bluetooth
bpf bpf: fix warning about using plain integer as NULL 2019-03-08 21:17:07 +01:00
bpfilter
bridge net: bridge: use eth_broadcast_addr() to assign broadcast address 2019-03-20 11:02:47 -07:00
caif
can
ceph
core genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
dcb
dccp
decnet
dns_resolver
dsa
ethernet
hsr genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
ieee802154 genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
ife
ipv4 genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
ipv6 genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
iucv
kcm
key
l2tp genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
l3mdev
lapb
llc
mac80211 net: remove 'fallback' argument from dev->ndo_select_queue() 2019-03-20 11:18:55 -07:00
mac802154
mpls
ncsi genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
netfilter genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
netlabel genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
netlink genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
netrom
nfc genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
nsh
openvswitch genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
packet net: remove 'fallback' argument from dev->ndo_select_queue() 2019-03-20 11:18:55 -07:00
phonet
psample
qrtr
rds 5.1 Merge Window Pull Request 2019-03-09 15:53:03 -08:00
rfkill
rose net: rose: fix a possible stack overflow 2019-03-18 16:53:22 -07:00
rxrpc rxrpc: Fix client call queueing, waiting for channel 2019-03-08 18:24:53 -08:00
sched net: sched: flower: set unlocked flag for flower proto ops 2019-03-21 14:32:17 -07:00
sctp sctp: fix ignoring asoc_id for tcp-style sockets on SCTP_STREAM_SCHEDULER sockopt 2019-03-18 18:31:09 -07:00
smc genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
strparser net: strparser: fix a missing check for create_singlethread_workqueue 2019-03-15 12:51:56 -07:00
sunrpc Miscellaneous NFS server fixes. Probably the most visible bug is one 2019-03-12 15:06:54 -07:00
switchdev
tipc genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
tls net/tls: Replace kfree_skb() with consume_skb() 2019-03-21 10:14:26 -07:00
unix io_uring-2019-03-06 2019-03-08 14:48:40 -08:00
vmw_vsock vsock/virtio: fix kernel panic from virtio_transport_reset_no_sock 2019-03-08 15:15:44 -08:00
wimax genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
wireless genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
x25 net/x25: reset state in x25_connect() 2019-03-11 15:40:14 -07:00
xdp xsk: fix umem memory leak on cleanup 2019-03-16 01:27:51 +01:00
xfrm net: dev: rename queue selection helpers. 2019-03-20 11:18:54 -07:00
compat.c
Kconfig
Makefile
socket.c net: add documentation to socket.c 2019-03-15 15:29:47 -07:00
sysctl_net.c