From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [PATCH net v3] bna: fix vlan tag stripping and implement its toggling Date: Fri, 28 Feb 2014 14:37:08 +0100 Message-ID: <20140228133708.GD2823@minipsycho.orion> References: <1393593243-10334-1-git-send-email-ivecera@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, davem@davemloft.net, rmody@brocade.com, fw@strlen.de To: Ivan Vecera Return-path: Received: from mail-ee0-f41.google.com ([74.125.83.41]:58666 "EHLO mail-ee0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751851AbaB1NhQ (ORCPT ); Fri, 28 Feb 2014 08:37:16 -0500 Received: by mail-ee0-f41.google.com with SMTP id b15so2267726eek.14 for ; Fri, 28 Feb 2014 05:37:14 -0800 (PST) Content-Disposition: inline In-Reply-To: <1393593243-10334-1-git-send-email-ivecera@redhat.com> Sender: netdev-owner@vger.kernel.org List-ID: Fri, Feb 28, 2014 at 02:14:03PM CET, ivecera@redhat.com wrote: >The recent commit "fe1624c bna: RX Filter Enhancements" disables >VLAN tag stripping if the NIC is in promiscuous mode. This causes >__vlan_hwaccel_put_tag() is called when the stripping is disabled. >Because of this VLAN over bna does not work and causes BUGs in conjunction >with openvswitch like this: > >--- >[18370.665074] kernel BUG at include/linux/skbuff.h:1497! >... >[18370.876769] Call Trace: >[18370.879455] >[18370.881569] [] internal_dev_recv+0xb6/0x130 [openvswitch] >[18370.889552] [] ovs_vport_send+0x1d/0x80 [openvswitch] >[18370.896922] [] do_output+0x2a/0x50 [openvswitch] >[18370.903814] [] do_execute_actions+0x19d/0xb20 [openvswitch] >[18370.911757] [] ovs_execute_actions+0x2b/0x30 [openvswitch] >[18370.919602] [] ovs_dp_process_received_packet+0x92/0x120 [openvswitch] >[18370.928597] [] ? find_busiest_group+0x103/0x880 >[18370.935396] [] ovs_vport_receive+0x2a/0x30 [openvswitch] >[18370.943053] [] netdev_frame_hook+0xc1/0x120 [openvswitch] >[18370.950802] [] __netif_receive_skb_core+0x262/0x840 >[18370.957982] [] ? flush_ptrace_hw_breakpoint+0x10/0x40 >[18370.965349] [] __netif_receive_skb+0x18/0x60 >[18370.971855] [] netif_receive_skb+0x33/0xb0 >[18370.978172] [] napi_gro_frags+0x116/0x170 >[18370.984407] [] bnad_napi_poll_rx+0x3f4/0x8f0 [bna] >[18370.991488] [] net_rx_action+0x15a/0x250 >... >--- > >The following patch makes the following changes so the driver: >1. Implements .ndo_set_features so an user can toggle VLAN tag stripping > on/off >2. Does not disable VLAN tag stripping in promiscuous mode so the driver > respect user's choice >3. Calls __vlan_hwaccel_put_tag() only when the stripping is enabled > >v2: >- make bnad_set_features static (thanks Florian Westphal) >- enable/disable VLAN stripping during open WRT hw_features > >v3: >- enable/disable VLAN stripping during open WRT features and not hw_features > >Signed-off-by: Ivan Vecera Looks ok to me now. Reviewed-by: Jiri Pirko