/* * net/sched/act_meta_tc_index.c IFE skb->tc_index metadata module * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * copyright Jamal Hadi Salim (2016) * */ #include #include #include #include #include #include #include #include #include #include #include #include #include static int skbtcindex_encode(struct sk_buff *skb, void *skbdata, struct tcf_meta_info *e) { u32 ifetc_index = skb->tc_index; return ife_encode_meta_u16(ifetc_index, skbdata, e); } static int skbtcindex_decode(struct sk_buff *skb, void *data, u16 len) { u16 ifetc_index = *(u16 *)data; skb->tc_index = ntohs(ifetc_index); return 0; } static int skbtcindex_check(struct sk_buff *skb, struct tcf_meta_info *e) { return ife_check_meta_u16(skb->tc_index, e); } static struct tcf_meta_ops ife_skbtcindex_ops = { .metaid = IFE_META_TCINDEX, .metatype = NLA_U16, .name = "tc_index", .synopsis = "skb tc_index 16 bit metadata", .check_presence = skbtcindex_check, .encode = skbtcindex_encode, .decode = skbtcindex_decode, .get = ife_get_meta_u16, .alloc = ife_alloc_meta_u16, .release = ife_release_meta_gen, .validate = ife_validate_meta_u16, .owner = THIS_MODULE, }; static int __init ifetc_index_init_module(void) { return register_ife_op(&ife_skbtcindex_ops); } static void __exit ifetc_index_cleanup_module(void) { unregister_ife_op(&ife_skbtcindex_ops); } module_init(ifetc_index_init_module); module_exit(ifetc_index_cleanup_module); MODULE_AUTHOR("Jamal Hadi Salim(2016)"); MODULE_DESCRIPTION("Inter-FE skb tc_index metadata module"); MODULE_LICENSE("GPL"); MODULE_ALIAS_IFE_META(IFE_META_SKBTCINDEX); /linux/net-next.git/log/'>
AgeCommit message (Collapse)AuthorFilesLines
2017-02-09sierra_net: Add support for IPv6 and Dual-Stack Link Sense IndicationsStefan Brüns1-35/+66
If a context is configured as dualstack ("IPv4v6"), the modem indicates the context activation with a slightly different indication message. The dual-stack indication omits the link_type (IPv4/v6) and adds additional address fields. IPv6 LSIs are identical to IPv4 LSIs, but have a different link type. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-09kcm: fix 0-length case for kcm_sendmsg()WANG Cong1-18/+22
Dmitry reported a kernel warning: WARNING: CPU: 3 PID: 2936 at net/kcm/kcmsock.c:627 kcm_write_msgs+0x12e3/0x1b90 net/kcm/kcmsock.c:627 CPU: 3 PID: 2936 Comm: a.out Not tainted 4.10.0-rc6+ #209 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:15 [inline] dump_stack+0x2ee/0x3ef lib/dump_stack.c:51 panic+0x1fb/0x412 kernel/panic.c:179 __warn+0x1c4/0x1e0 kernel/panic.c:539 warn_slowpath_null+0x2c/0x40 kernel/panic.c:582 kcm_write_msgs+0x12e3/0x1b90 net/kcm/kcmsock.c:627 kcm_sendmsg+0x163a/0x2200 net/kcm/kcmsock.c:1029 sock_sendmsg_nosec net/socket.c:635 [inline] sock_sendmsg+0xca/0x110 net/socket.c:645 sock_write_iter+0x326/0x600 net/socket.c:848 new_sync_write fs/read_write.c:499 [inline] __vfs_write+0x483/0x740 fs/read_write.c:512 vfs_write+0x187/0x530 fs/read_write.c:560 SYSC_write fs/read_write.c:607 [inline] SyS_write+0xfb/0x230 fs/read_write.c:599 entry_SYSCALL_64_fastpath+0x1f/0xc2 when calling syscall(__NR_write, sock2, 0x208aaf27ul, 0x0ul) on a KCM seqpacket socket. It appears that kcm_sendmsg() does not handle len==0 case correctly, which causes an empty skb is allocated and queued. Fix this by skipping the skb allocation for len==0 case. Reported-by: Dmitry Vyukov <dvyukov@google.com> Cc: Tom Herbert <tom@herbertland.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-09xen-netfront: Rework the fix for Rx stall during OOM and network stressVineeth Remanan Pillai