Commits
Denis V. Lunev authored and Den Lunev committed 5d73fa6beb1
ub: ub_sock_tcp_chargesend warning if called via tcp_fragment #115332 BUG: warning at kernel/ub/ub_net.c:335/__ub_skb_set_charge() (Tainted: P ) [<c043b658>] ub_sock_tcp_chargesend+0x86/0x171 [<c05db289>] tcp_fragment+0xaf/0x452 [<c05d507a>] tcp_sacktag_write_queue+0x30f/0x71e [<c05d568f>] tcp_ack+0x206/0x184c [<c05dc61a>] __tcp_push_pending_frames+0x4ab/0x79e [<c05d9f6f>] tcp_rcv_established+0x76b/0x884 [<c05df70b>] tcp_v4_do_rcv+0x40/0x329 [<fa087154>] ipt_hook+0x28/0x30 [iptable_filter] [<c05c182c>] nf_iterate+0x30/0x61 [<c05e2020>] tcp_v4_rcv+0x981/0x9d5 [<c05c782b>] ip_local_deliver+0x1a6/0x26f [<c05c7642>] ip_rcv+0x4fb/0x53e [<c05aac62>] netif_receive_skb+0x306/0x3ac [<f8c4d0aa>] e1000_clean_rx_irq+0x34a/0x41f [e1000] [<f8c4c188>] e1000_clean+0x6b/0x222 [e1000] [<c05ac0bb>] net_rx_action+0x92/0x175 [<c04271aa>] __do_softirq+0x84/0x109 [<c0427265>] do_softirq+0x36/0x3a [<c0406573>] do_IRQ+0xad/0xb6 [<c060b0b6>] common_interrupt+0x1a/0x20 [<c0403d40>] mwait_idle+0x25/0x38 [<c0403d05>] cpu_idle+0x5e/0x74 ======================= The warning occures when we try to charge skb that is already charged. This is correct for the case. The size of underlying skb is changed and we uncharge/charge to keep situation sane. ub_skb_uncharge is equivalent to ub_sock_ret_wreserv ub_skb_set_uncharge which is just correct for the case. Signed-off-by: Denis V. Lunev <den@parallels.com>