net-next: replace obsolete NLMSG_* with type safe nlmsg_*
Signed-off-by: Hong Zhiguo <honkiko@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
e5c5d22e8d
Коммит
573ce260b3
|
@ -35,7 +35,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/netfilter/x_tables.h>
|
||||
#include <linux/netfilter_bridge/ebtables.h>
|
||||
|
@ -134,7 +134,7 @@ static void ebt_ulog_packet(unsigned int hooknr, const struct sk_buff *skb,
|
|||
else
|
||||
copy_len = uloginfo->cprange;
|
||||
|
||||
size = NLMSG_SPACE(sizeof(*pm) + copy_len);
|
||||
size = nlmsg_total_size(sizeof(*pm) + copy_len);
|
||||
if (size > nlbufsiz) {
|
||||
pr_debug("Size %Zd needed, but nlbufsiz=%d\n", size, nlbufsiz);
|
||||
return;
|
||||
|
|
|
@ -2613,10 +2613,10 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|||
type -= RTM_BASE;
|
||||
|
||||
/* All the messages must have at least 1 byte length */
|
||||
if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(struct rtgenmsg)))
|
||||
if (nlmsg_len(nlh) < sizeof(struct rtgenmsg))
|
||||
return 0;
|
||||
|
||||
family = ((struct rtgenmsg *)NLMSG_DATA(nlh))->rtgen_family;
|
||||
family = ((struct rtgenmsg *)nlmsg_data(nlh))->rtgen_family;
|
||||
sz_idx = type>>2;
|
||||
kind = type&3;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <linux/sockios.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/netdevice.h>
|
||||
|
@ -492,7 +492,7 @@ int dn_fib_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
|||
if (!net_eq(net, &init_net))
|
||||
return 0;
|
||||
|
||||
if (NLMSG_PAYLOAD(cb->nlh, 0) >= sizeof(struct rtmsg) &&
|
||||
if (nlmsg_len(cb->nlh) >= sizeof(struct rtmsg) &&
|
||||
((struct rtmsg *)nlmsg_data(cb->nlh))->rtm_flags&RTM_F_CLONED)
|
||||
return dn_cache_dump(skb, cb);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <linux/netdevice.h>
|
||||
#include <linux/netfilter.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/netfilter_decnet.h>
|
||||
|
||||
#include <net/sock.h>
|
||||
|
@ -39,21 +39,21 @@ static struct sk_buff *dnrmg_build_message(struct sk_buff *rt_skb, int *errp)
|
|||
unsigned char *ptr;
|
||||
struct nf_dn_rtmsg *rtm;
|
||||
|
||||
size = NLMSG_SPACE(rt_skb->len);
|
||||
size += NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg));
|
||||
skb = alloc_skb(size, GFP_ATOMIC);
|
||||
size = NLMSG_ALIGN(rt_skb->len) +
|
||||
NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg));
|
||||
skb = nlmsg_new(size, GFP_ATOMIC);
|
||||
if (!skb) {
|
||||
*errp = -ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
old_tail = skb->tail;
|
||||
nlh = nlmsg_put(skb, 0, 0, 0, size - sizeof(*nlh), 0);
|
||||
nlh = nlmsg_put(skb, 0, 0, 0, size, 0);
|
||||
if (!nlh) {
|
||||
kfree_skb(skb);
|
||||
*errp = -ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
rtm = (struct nf_dn_rtmsg *)NLMSG_DATA(nlh);
|
||||
rtm = (struct nf_dn_rtmsg *)nlmsg_data(nlh);
|
||||
rtm->nfdn_ifindex = rt_skb->dev->ifindex;
|
||||
ptr = NFDN_RTMSG(rtm);
|
||||
skb_copy_from_linear_data(rt_skb, ptr, rt_skb->len);
|
||||
|
|
|
@ -65,7 +65,7 @@ struct sk_buff *ieee802154_nl_create(int flags, u8 req)
|
|||
int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group)
|
||||
{
|
||||
/* XXX: nlh is right at the start of msg */
|
||||
void *hdr = genlmsg_data(NLMSG_DATA(msg->data));
|
||||
void *hdr = genlmsg_data(nlmsg_data(msg->data));
|
||||
|
||||
if (genlmsg_end(msg, hdr) < 0)
|
||||
goto out;
|
||||
|
@ -98,7 +98,7 @@ struct sk_buff *ieee802154_nl_new_reply(struct genl_info *info,
|
|||
int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info)
|
||||
{
|
||||
/* XXX: nlh is right at the start of msg */
|
||||
void *hdr = genlmsg_data(NLMSG_DATA(msg->data));
|
||||
void *hdr = genlmsg_data(nlmsg_data(msg->data));
|
||||
|
||||
if (genlmsg_end(msg, hdr) < 0)
|
||||
goto out;
|
||||
|
|
|
@ -957,8 +957,8 @@ static void nl_fib_input(struct sk_buff *skb)
|
|||
|
||||
net = sock_net(skb->sk);
|
||||
nlh = nlmsg_hdr(skb);
|
||||
if (skb->len < NLMSG_SPACE(0) || skb->len < nlh->nlmsg_len ||
|
||||
nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*frn)))
|
||||
if (skb->len < NLMSG_HDRLEN || skb->len < nlh->nlmsg_len ||
|
||||
nlmsg_len(nlh) < sizeof(*frn))
|
||||
return;
|
||||
|
||||
skb = skb_clone(skb, GFP_KERNEL);
|
||||
|
@ -966,7 +966,7 @@ static void nl_fib_input(struct sk_buff *skb)
|
|||
return;
|
||||
nlh = nlmsg_hdr(skb);
|
||||
|
||||
frn = (struct fib_result_nl *) NLMSG_DATA(nlh);
|
||||
frn = (struct fib_result_nl *) nlmsg_data(nlh);
|
||||
tb = fib_get_table(net, frn->tb_id_in);
|
||||
|
||||
nl_fib_lookup(frn, tb);
|
||||
|
|
|
@ -626,9 +626,9 @@ static void ipmr_destroy_unres(struct mr_table *mrt, struct mfc_cache *c)
|
|||
if (ip_hdr(skb)->version == 0) {
|
||||
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct iphdr));
|
||||
nlh->nlmsg_type = NLMSG_ERROR;
|
||||
nlh->nlmsg_len = NLMSG_LENGTH(sizeof(struct nlmsgerr));
|
||||
nlh->nlmsg_len = nlmsg_msg_size(sizeof(struct nlmsgerr));
|
||||
skb_trim(skb, nlh->nlmsg_len);
|
||||
e = NLMSG_DATA(nlh);
|
||||
e = nlmsg_data(nlh);
|
||||
e->error = -ETIMEDOUT;
|
||||
memset(&e->msg, 0, sizeof(e->msg));
|
||||
|
||||
|
@ -910,14 +910,14 @@ static void ipmr_cache_resolve(struct net *net, struct mr_table *mrt,
|
|||
if (ip_hdr(skb)->version == 0) {
|
||||
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct iphdr));
|
||||
|
||||
if (__ipmr_fill_mroute(mrt, skb, c, NLMSG_DATA(nlh)) > 0) {
|
||||
if (__ipmr_fill_mroute(mrt, skb, c, nlmsg_data(nlh)) > 0) {
|
||||
nlh->nlmsg_len = skb_tail_pointer(skb) -
|
||||
(u8 *)nlh;
|
||||
} else {
|
||||
nlh->nlmsg_type = NLMSG_ERROR;
|
||||
nlh->nlmsg_len = NLMSG_LENGTH(sizeof(struct nlmsgerr));
|
||||
nlh->nlmsg_len = nlmsg_msg_size(sizeof(struct nlmsgerr));
|
||||
skb_trim(skb, nlh->nlmsg_len);
|
||||
e = NLMSG_DATA(nlh);
|
||||
e = nlmsg_data(nlh);
|
||||
e->error = -EMSGSIZE;
|
||||
memset(&e->msg, 0, sizeof(e->msg));
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/moduleparam.h>
|
||||
|
@ -172,7 +172,7 @@ static void ipt_ulog_packet(unsigned int hooknum,
|
|||
else
|
||||
copy_len = loginfo->copy_range;
|
||||
|
||||
size = NLMSG_SPACE(sizeof(*pm) + copy_len);
|
||||
size = nlmsg_total_size(sizeof(*pm) + copy_len);
|
||||
|
||||
ub = &ulog_buffers[groupnum];
|
||||
|
||||
|
|
|
@ -64,9 +64,9 @@ static int udp_dump_one(struct udp_table *tbl, struct sk_buff *in_skb,
|
|||
goto out;
|
||||
|
||||
err = -ENOMEM;
|
||||
rep = alloc_skb(NLMSG_SPACE((sizeof(struct inet_diag_msg) +
|
||||
sizeof(struct inet_diag_meminfo) +
|
||||
64)), GFP_KERNEL);
|
||||
rep = nlmsg_new(sizeof(struct inet_diag_msg) +
|
||||
sizeof(struct inet_diag_meminfo) + 64,
|
||||
GFP_KERNEL);
|
||||
if (!rep)
|
||||
goto out;
|
||||
|
||||
|
|
|
@ -842,9 +842,9 @@ static void ip6mr_destroy_unres(struct mr6_table *mrt, struct mfc6_cache *c)
|
|||
if (ipv6_hdr(skb)->version == 0) {
|
||||
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct ipv6hdr));
|
||||
nlh->nlmsg_type = NLMSG_ERROR;
|
||||
nlh->nlmsg_len = NLMSG_LENGTH(sizeof(struct nlmsgerr));
|
||||
nlh->nlmsg_len = nlmsg_msg_size(sizeof(struct nlmsgerr));
|
||||
skb_trim(skb, nlh->nlmsg_len);
|
||||
((struct nlmsgerr *)NLMSG_DATA(nlh))->error = -ETIMEDOUT;
|
||||
((struct nlmsgerr *)nlmsg_data(nlh))->error = -ETIMEDOUT;
|
||||
rtnl_unicast(skb, net, NETLINK_CB(skb).portid);
|
||||
} else
|
||||
kfree_skb(skb);
|
||||
|
@ -1100,13 +1100,13 @@ static void ip6mr_cache_resolve(struct net *net, struct mr6_table *mrt,
|
|||
if (ipv6_hdr(skb)->version == 0) {
|
||||
struct nlmsghdr *nlh = (struct nlmsghdr *)skb_pull(skb, sizeof(struct ipv6hdr));
|
||||
|
||||
if (__ip6mr_fill_mroute(mrt, skb, c, NLMSG_DATA(nlh)) > 0) {
|
||||
if (__ip6mr_fill_mroute(mrt, skb, c, nlmsg_data(nlh)) > 0) {
|
||||
nlh->nlmsg_len = skb_tail_pointer(skb) - (u8 *)nlh;
|
||||
} else {
|
||||
nlh->nlmsg_type = NLMSG_ERROR;
|
||||
nlh->nlmsg_len = NLMSG_LENGTH(sizeof(struct nlmsgerr));
|
||||
nlh->nlmsg_len = nlmsg_msg_size(sizeof(struct nlmsgerr));
|
||||
skb_trim(skb, nlh->nlmsg_len);
|
||||
((struct nlmsgerr *)NLMSG_DATA(nlh))->error = -EMSGSIZE;
|
||||
((struct nlmsgerr *)nlmsg_data(nlh))->error = -EMSGSIZE;
|
||||
}
|
||||
rtnl_unicast(skb, net, NETLINK_CB(skb).portid);
|
||||
} else
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <linux/ip.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rculist.h>
|
||||
#include <net/netlink.h>
|
||||
|
||||
|
@ -1085,7 +1084,7 @@ static int
|
|||
dump_init(struct netlink_callback *cb)
|
||||
{
|
||||
struct nlmsghdr *nlh = nlmsg_hdr(cb->skb);
|
||||
int min_len = NLMSG_SPACE(sizeof(struct nfgenmsg));
|
||||
int min_len = nlmsg_total_size(sizeof(struct nfgenmsg));
|
||||
struct nlattr *cda[IPSET_ATTR_CMD_MAX+1];
|
||||
struct nlattr *attr = (void *)nlh + min_len;
|
||||
u32 dump_type;
|
||||
|
@ -1301,7 +1300,7 @@ call_ad(struct sock *ctnl, struct sk_buff *skb, struct ip_set *set,
|
|||
struct sk_buff *skb2;
|
||||
struct nlmsgerr *errmsg;
|
||||
size_t payload = sizeof(*errmsg) + nlmsg_len(nlh);
|
||||
int min_len = NLMSG_SPACE(sizeof(struct nfgenmsg));
|
||||
int min_len = nlmsg_total_size(sizeof(struct nfgenmsg));
|
||||
struct nlattr *cda[IPSET_ATTR_CMD_MAX+1];
|
||||
struct nlattr *cmdattr;
|
||||
u32 *errline;
|
||||
|
|
|
@ -24,10 +24,9 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/netfilter/nfnetlink.h>
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -144,7 +143,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
|
|||
return -EPERM;
|
||||
|
||||
/* All the messages must at least contain nfgenmsg */
|
||||
if (nlh->nlmsg_len < NLMSG_LENGTH(sizeof(struct nfgenmsg)))
|
||||
if (nlmsg_len(nlh) < sizeof(struct nfgenmsg))
|
||||
return 0;
|
||||
|
||||
type = nlh->nlmsg_type;
|
||||
|
@ -172,7 +171,7 @@ replay:
|
|||
}
|
||||
|
||||
{
|
||||
int min_len = NLMSG_SPACE(sizeof(struct nfgenmsg));
|
||||
int min_len = nlmsg_total_size(sizeof(struct nfgenmsg));
|
||||
u_int8_t cb_id = NFNL_MSG_TYPE(nlh->nlmsg_type);
|
||||
struct nlattr *cda[ss->cb[cb_id].attr_count + 1];
|
||||
struct nlattr *attr = (void *)nlh + min_len;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <linux/ipv6.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/netfilter.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/netfilter/nfnetlink.h>
|
||||
#include <linux/netfilter/nfnetlink_log.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
@ -609,7 +609,7 @@ nfulnl_log_packet(u_int8_t pf,
|
|||
/* FIXME: do we want to make the size calculation conditional based on
|
||||
* what is actually present? way more branches and checks, but more
|
||||
* memory efficient... */
|
||||
size = NLMSG_SPACE(sizeof(struct nfgenmsg))
|
||||
size = nlmsg_total_size(sizeof(struct nfgenmsg))
|
||||
+ nla_total_size(sizeof(struct nfulnl_msg_packet_hdr))
|
||||
+ nla_total_size(sizeof(u_int32_t)) /* ifindex */
|
||||
+ nla_total_size(sizeof(u_int32_t)) /* ifindex */
|
||||
|
|
|
@ -281,7 +281,7 @@ nfqnl_build_packet_message(struct nfqnl_instance *queue,
|
|||
struct nf_conn *ct = NULL;
|
||||
enum ip_conntrack_info uninitialized_var(ctinfo);
|
||||
|
||||
size = NLMSG_SPACE(sizeof(struct nfgenmsg))
|
||||
size = nlmsg_total_size(sizeof(struct nfgenmsg))
|
||||
+ nla_total_size(sizeof(struct nfqnl_msg_packet_hdr))
|
||||
+ nla_total_size(sizeof(u_int32_t)) /* ifindex */
|
||||
+ nla_total_size(sizeof(u_int32_t)) /* ifindex */
|
||||
|
|
|
@ -1646,7 +1646,7 @@ struct nlmsghdr *
|
|||
__nlmsg_put(struct sk_buff *skb, u32 portid, u32 seq, int type, int len, int flags)
|
||||
{
|
||||
struct nlmsghdr *nlh;
|
||||
int size = NLMSG_LENGTH(len);
|
||||
int size = nlmsg_msg_size(len);
|
||||
|
||||
nlh = (struct nlmsghdr*)skb_put(skb, NLMSG_ALIGN(size));
|
||||
nlh->nlmsg_type = type;
|
||||
|
@ -1655,7 +1655,7 @@ __nlmsg_put(struct sk_buff *skb, u32 portid, u32 seq, int type, int len, int fla
|
|||
nlh->nlmsg_pid = portid;
|
||||
nlh->nlmsg_seq = seq;
|
||||
if (!__builtin_constant_p(size) || NLMSG_ALIGN(size) - size != 0)
|
||||
memset(NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size);
|
||||
memset(nlmsg_data(nlh) + len, 0, NLMSG_ALIGN(size) - size);
|
||||
return nlh;
|
||||
}
|
||||
EXPORT_SYMBOL(__nlmsg_put);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include <linux/skbuff.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <net/netlink.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/slab.h>
|
||||
#include <net/net_namespace.h>
|
||||
|
@ -428,7 +428,7 @@ static int tc_dump_tfilter(struct sk_buff *skb, struct netlink_callback *cb)
|
|||
const struct Qdisc_class_ops *cops;
|
||||
struct tcf_dump_args arg;
|
||||
|
||||
if (cb->nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*tcm)))
|
||||
if (nlmsg_len(cb->nlh) < sizeof(*tcm))
|
||||
return skb->len;
|
||||
dev = __dev_get_by_index(net, tcm->tcm_ifindex);
|
||||
if (!dev)
|
||||
|
|
|
@ -1642,7 +1642,7 @@ static int tc_dump_tclass(struct sk_buff *skb, struct netlink_callback *cb)
|
|||
struct net_device *dev;
|
||||
int t, s_t;
|
||||
|
||||
if (cb->nlh->nlmsg_len < NLMSG_LENGTH(sizeof(*tcm)))
|
||||
if (nlmsg_len(cb->nlh) < sizeof(*tcm))
|
||||
return 0;
|
||||
dev = dev_get_by_index(net, tcm->tcm_ifindex);
|
||||
if (!dev)
|
||||
|
|
|
@ -44,7 +44,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
|
|||
struct nlmsghdr *rep_nlh;
|
||||
struct nlmsghdr *req_nlh = info->nlhdr;
|
||||
struct tipc_genlmsghdr *req_userhdr = info->userhdr;
|
||||
int hdr_space = NLMSG_SPACE(GENL_HDRLEN + TIPC_GENL_HDRLEN);
|
||||
int hdr_space = nlmsg_total_size(GENL_HDRLEN + TIPC_GENL_HDRLEN);
|
||||
u16 cmd;
|
||||
|
||||
if ((req_userhdr->cmd & 0xC000) && (!capable(CAP_NET_ADMIN)))
|
||||
|
@ -53,8 +53,8 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
|
|||
cmd = req_userhdr->cmd;
|
||||
|
||||
rep_buf = tipc_cfg_do_cmd(req_userhdr->dest, cmd,
|
||||
NLMSG_DATA(req_nlh) + GENL_HDRLEN + TIPC_GENL_HDRLEN,
|
||||
NLMSG_PAYLOAD(req_nlh, GENL_HDRLEN + TIPC_GENL_HDRLEN),
|
||||
nlmsg_data(req_nlh) + GENL_HDRLEN + TIPC_GENL_HDRLEN,
|
||||
nlmsg_attrlen(req_nlh, GENL_HDRLEN + TIPC_GENL_HDRLEN),
|
||||
hdr_space);
|
||||
|
||||
if (rep_buf) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче