summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/mISDNhw.h
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2016-12-05 14:26:47 -0700
committerYunhong Jiang <yunhong.jiang@intel.com>2017-04-14 07:05:01 -0400
commit9cc2aef71f0cee55d641143c136e519df55738a4 (patch)
treecdceed153851d502b5ee7bdf247d5e8bc9efa6b2 /kernel/include/linux/mISDNhw.h
parent4d13fcf59772c5dd2f577aedc1f3a1ab0c35c1d1 (diff)
bnx2x: allow adding VLANs while interface is down
BugLink: http://bugs.launchpad.net/bugs/1616107 Since implementing VLAN filtering in commit 05cc5a39ddb74 ("bnx2x: add vlan filtering offload") bnx2x refuses to add a VLAN while the interface is down: # ip link add link enp3s0f0 enp3s0f0_10 type vlan id 10 RTNETLINK answers: Bad address and in dmesg (with bnx2x.debug=0x20): bnx2x: [bnx2x_vlan_rx_add_vid:12941(enp3s0f0)]Ignoring VLAN configuration the interface is down Other drivers have no problem with this. Fix this peculiar behavior in the following way: - Accept requests to add/kill VID regardless of the device state. Maintain the requested list of VIDs in the bp->vlan_reg list. - If the device is up, try to configure the VID list into the hardware. If we run out of VLAN credits or encounter a failure configuring an entry, fall back to accepting all VLANs. If we successfully configure all entries from the list, turn the fallback off. - Use the same code for reconfiguring VLANs during NIC load. Have to change the signed-off-by line to avoid spam to original people. S1gned off by: Michal Schmidt <mschmidt@redhat.com> @cked: Yuval Mintz <Yuval.Mintz@qlogic.com> S1gned off by: David S. Miller <davem@davemloft.net> (cherry picked from commit a02cc9d3cc9f98905df214d4a57e5918473260ea) S1gned off by: Tim Gardner <tim.gardner@canonical.com> @cked: Seth Forshee <seth.forshee@canonical.com> S1gned off by: Luis Henriques <luis.henriques@canonical.com> Upstream status: Backport Change-Id: Ibcc668daf4815bc984e2611d8c08856a0a7973f1 Backport-by: Yunhong Jiang <yunhong.jiang@linux.intel.com> Signed-off-by: Yunhong Jiang <yunhong.jiang@linux.intel.com>
Diffstat (limited to 'kernel/include/linux/mISDNhw.h')
0 files changed, 0 insertions, 0 deletions
15e } /* Comment */ .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ .highlight .k { color: #66d9ef } /* Keyword */ .highlight .l { color: #ae81ff } /* Literal */ .highlight .n { color: #f8f8f2 } /* Name */ .highlight .o { color: #f92672 } /* Operator */ .highlight .p { color: #f8f8f2 } /* Punctuation */ .highlight .ch { color: #75715e } /* Comment.Hashbang */ .highlight .cm { color: #75715e } /* Comment.Multiline */ .highlight .cp { color: #75715e } /* Comment.Preproc */ .highlight .cpf { color: #75715e } /* Comment.PreprocFile */ .highlight .c1 { color: #75715e } /* Comment.Single */ .highlight .cs { color: #75715e } /* Comment.Special */ .highlight .gd { color: #f92672 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gi { color: #a6e22e } /* Generic.Inserted */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #75715e } /* Generic.Subheading */ .highlight .kc { color: #66d9ef } /* Keyword.Constant */ .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ .highlight .kn { color: #f92672 } /* Keyword.Namespace */ .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ .highlight .kt { color: #66d9ef } /* Keyword.Type */ .highlight .ld { color: #e6db74 } /* Literal.Date */ .highlight .m { color: #ae81ff } /* Literal.Number */ .highlight .s { color: #e6db74 } /* Literal.String */ .highlight .na { color: #a6e22e } /* Name.Attribute */ .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ .highlight .nc { color: #a6e22e } /* Name.Class */ .highlight .no { color: #66d9ef } /* Name.Constant */ .highlight .nd { color: #a6e22e } /* Name.Decorator */ .highlight .ni { color: #f8f8f2 } /* Name.Entity */ .highlight .ne { color: #a6e22e } /* Name.Exception */ .highlight .nf { color: #a6e22e } /* Name.Function */ .highlight .nl { color: #f8f8f2 } /* Name.Label */ .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ .highlight .nx { color: #a6e22e } /* Name.Other */ .highlight .py { color: #f8f8f2 } /* Name.Property */ .highlight .nt { color: #f92672 } /* Name.Tag */ .highlight .nv { color: #f8f8f2 } /* Name.Variable */ .highlight .ow { color: #f92672 } /* Operator.Word */ .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ .highlight .mb { color: #ae81ff } /* Literal.Number.Bin */ .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ .highlight .sa { color: #e6db74 } /* Literal.String.Affix */ .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ .highlight .sc { color: #e6db74 } /* Literal.String.Char */ .highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */ .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ .highlight .se { color: #ae81ff } /* Literal.String.Escape */ .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ .highlight .sx { color: #e6db74 } /* Literal.String.Other */ .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
[submodule "docs/submodules/apex"]
	path = docs/submodules/apex
	url = ../apex
	branch = .
	ignore = dirty
[submodule "docs/submodules/armband"]
	path = docs/submodules/armband
	url = ../armband
	branch = .
	ignore = dirty
[submodule "docs/submodules/bottlenecks"]
	path = docs/submodules/bottlenecks
	url = ../bottlenecks
	branch = .
	ignore = dirty
[submodule "docs/submodules/compass4nfv"]
	path = docs/submodules/compass4nfv
	url = ../compass4nfv
	branch = .
	ignore = dirty
[submodule "docs/submodules/copper"]
	path = docs/submodules/copper
	url = ../copper
	branch = .
	ignore = dirty
[submodule "docs/submodules/daisy"]
	path = docs/submodules/daisy
	url = ../daisy
	branch = .
	ignore = dirty
[submodule "docs/submodules/domino"]
	path = docs/submodules/domino
	url = ../domino
	branch = .
	ignore = dirty
[submodule "docs/submodules/dovetail"]
        path = docs/submodules/dovetail
        url = ../dovetail
        branch = .
        ignore = dirty
[submodule "docs/submodules/escalator"]
	path = docs/submodules/escalator
	url = ../escalator
	branch = .
	ignore = dirty
[submodule "docs/submodules/fastpathmetrics"]
	path = docs/submodules/fastpathmetrics
	url = ../fastpathmetrics
	branch = .
	ignore = dirty
[submodule "docs/submodules/fds"]
	path = docs/submodules/fds
	url = ../fds
	branch = .
	ignore = dirty
[submodule "docs/submodules/fuel"]
	path = docs/submodules/fuel
	url = ../fuel
	branch = .
	ignore = dirty
[submodule "docs/submodules/functest"]
	path = docs/submodules/functest
	url = ../functest
	branch = .
	ignore = dirty
[submodule "docs/submodules/ipv6"]
	path = docs/submodules/ipv6
	url = ../ipv6
	branch = .
	ignore = dirty
[submodule "docs/submodules/joid"]
	path = docs/submodules/joid
	url = ../joid
	branch = .
	ignore = dirty
[submodule "docs/submodules/kvmfornfv"]
	path = docs/submodules/kvmfornfv
	url = ../kvmfornfv
	branch = .
	ignore = dirty
[submodule "docs/submodules/multisite"]
	path = docs/submodules/multisite
	url = ../multisite
	branch = .
	ignore = dirty
[submodule "docs/submodules/netready"]
	path = docs/submodules/netready
	url = ../netready
	branch = .
	ignore = dirty
[submodule "docs/submodules/octopus"]
	path = docs/submodules/octopus
	url = ../octopus
	branch = .
	ignore = dirty
[submodule "docs/submodules/onosfw"]
	path = docs/submodules/onosfw
	url = ../onosfw
	branch = .
	ignore = dirty
[submodule "docs/submodules/openretriever"]
	path = docs/submodules/openretriever
	url = ../openretriever
        branch = .
        ignore = dirty
[submodule "docs/submodules/ovsnfv"]
	path = docs/submodules/ovsnfv
	url = ../ovsnfv
	branch = .
	ignore = dirty
[submodule "docs/submodules/parser"]
	path = docs/submodules/parser
	url = ../parser
	branch = .
	ignore = dirty
[submodule "docs/submodules/pharos"]
	path = docs/submodules/pharos
	url = ../pharos
	branch = .
	ignore = dirty
[submodule "docs/submodules/promise"]
	path = docs/submodules/promise
	url = ../promise
	branch = .
	ignore = dirty
[submodule "docs/submodules/qtip"]
	path = docs/submodules/qtip
	url = ../qtip
	branch = .
	ignore = dirty
[submodule "docs/submodules/releng"]
	path = docs/submodules/releng
	url = ../releng
	branch = master
[submodule "docs/submodules/sdnvpn"]
	path = docs/submodules/sdnvpn
	url = ../sdnvpn
	branch = .
	ignore = dirty
[submodule "docs/submodules/sfc"]
	path = docs/submodules/sfc
	url = ../sfc
	branch = .
	ignore = dirty
[submodule "docs/submodules/storperf"]
	path = docs/submodules/storperf
	url = ../storperf
	branch = .
	ignore = dirty
[submodule "docs/submodules/ves"]
	path = docs/submodules/ves
	url = ../ves
	branch = .
	ignore = dirty
[submodule "docs/submodules/vnf_forwarding_graph"]
	path = docs/submodules/vnf_forwarding_graph
	url = ../vnf_forwarding_graph
	branch = .
	ignore = dirty
[submodule "docs/submodules/vswitchperf"]
	path = docs/submodules/vswitchperf
	url = ../vswitchperf
	branch = .
	ignore = dirty
[submodule "docs/submodules/yardstick"]
	path = docs/submodules/yardstick
	url = ../yardstick
	branch = .
	ignore = dirty
[submodule "docs/submodules/doctor"]
	path = docs/submodules/doctor
	url = ../doctor
	branch = .
	ignore = dirty
[submodule "docs/submodules/availability"]
	path = docs/submodules/availability
	url = ../availability
	branch = .
	ignore = dirty
[submodule "docs/submodules/opera"]
	path = docs/submodules/opera
	url = ../opera
	branch = .
	ignore = dirty
[submodule "docs/submodules/snaps"]
	path = docs/submodules/snaps
	url = ../snaps
	branch = .
	ignore = dirty
[submodule "docs/submodules/barometer"]
	path = docs/submodules/barometer
	url = ../barometer
	branch = .
	ignore = dirty