CONNECTOR: clean up {,__}cn_rx_skb()
PATCH 2/5 CONNECTOR: clean up {,__}cn_rx_skb()
- __cn_rx_skb() does nothing but calls cn_call_callback(), it doesn't check skb and msg sizes as the comment suggests, but cn_rx_skb() checks those sizes.
- In cn_rx_skb() Local variable 'len' is not used. 'len' is probably intended to be passed to skb_pull(), but here skb_pull() is not needed, instead skb_free() is called.
Signed-off-by Li Zefan <[email protected]>
--- drivers/connector/connector.c | 30 ++++-------------------------- 1 files changed, 4 insertions(+), 26 deletions(-)
drivers/connector/connector.c +4 -26
@@ -180,33 +180,14 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v }/* -* Skb receive helper - checks skb and msg size and calls callback -* helper. -*/ -static int __cn_rx_skb (struct sk_buff *skb,struct nlmsghdr *nlh) -{ -u32 pid, uid, seq, group; -struct cn_msg *msg; - - pid =NETLINK_CREDS (skb)->pid; - uid =NETLINK_CREDS (skb)->uid; - seq = nlh->nlmsg_seq; - group =NETLINK_CB ((skb)).dst_group; - msg =NLMSG_DATA (nlh); - -return cn_call_callback (msg, (void (*)(void *))kfree_skb, skb); -} - -/* * Main netlink receiving function. * -* It checks skb and netlink header sizes and calls the skb receive -* helper with a shared skb. +* It checks skb, netlink header and msg sizes, and calls callback helper. */ static void cn_rx_skb (struct sk_buff *__skb) { +struct cn_msg *msg;struct nlmsghdr *nlh; -u32 len;int err;struct sk_buff *skb;
@@ -222,11 +203,8 @@ static void cn_rx_skb(struct sk_buff *__skb)return ; } - len =NLMSG_ALIGN (nlh->nlmsg_len); -if (len > skb->len) - len = skb->len; - - err =__cn_rx_skb (skb, nlh); + msg =NLMSG_DATA (nlh); + err =cn_call_callback (msg, (void (*)(void *))kfree_skb, skb);if (err <0 )kfree_skb (skb); }
Signature · 1 line
1.5.3.rc7