* [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
2011-12-04 3:26 ` David Miller
2011-12-03 11:44 ` [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable Jeff Kirsher
` (4 subsequent siblings)
5 siblings, 1 reply; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: Michael Wang, netdev, gospo, sassmann, Flavio Leitner,
Jeff Kirsher
From: Michael Wang <wangyun@linux.vnet.ibm.com>
Descriptors may not be write-back while checking TX hang with flag
FLAG2_DMA_BURST on.
So when we detect hang, we just flush the descriptor and detect
again for once.
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
Signed-off-by: Flavio Leitner <fbl@redhat.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/e1000.h | 1 +
drivers/net/ethernet/intel/e1000e/netdev.c | 23 ++++++++++++++++++++---
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
index 9fe18d1..f478a22 100644
--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -309,6 +309,7 @@ struct e1000_adapter {
u32 txd_cmd;
bool detect_tx_hung;
+ bool tx_hang_recheck;
u8 tx_timeout_factor;
u32 tx_int_delay;
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index c6e9763..3c12e6a 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1014,6 +1014,7 @@ static void e1000_print_hw_hang(struct work_struct *work)
struct e1000_adapter *adapter = container_of(work,
struct e1000_adapter,
print_hang_task);
+ struct net_device *netdev = adapter->netdev;
struct e1000_ring *tx_ring = adapter->tx_ring;
unsigned int i = tx_ring->next_to_clean;
unsigned int eop = tx_ring->buffer_info[i].next_to_watch;
@@ -1025,6 +1026,21 @@ static void e1000_print_hw_hang(struct work_struct *work)
if (test_bit(__E1000_DOWN, &adapter->state))
return;
+ if ((!adapter->tx_hang_recheck) &&
+ (adapter->flags2 & FLAG2_DMA_BURST)) {
+ /* May be block on write-back, flush and detect again
+ * flush pending descriptor writebacks to memory
+ */
+ ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD);
+ /* execute the writes immediately */
+ e1e_flush();
+ adapter->tx_hang_recheck = 1;
+ return;
+ }
+ /* Real hang detected */
+ adapter->tx_hang_recheck = 0;
+ netif_stop_queue(netdev);
+
e1e_rphy(hw, PHY_STATUS, &phy_status);
e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status);
e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status);
@@ -1145,10 +1161,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
if (tx_ring->buffer_info[i].time_stamp &&
time_after(jiffies, tx_ring->buffer_info[i].time_stamp
+ (adapter->tx_timeout_factor * HZ)) &&
- !(er32(STATUS) & E1000_STATUS_TXOFF)) {
+ !(er32(STATUS) & E1000_STATUS_TXOFF))
schedule_work(&adapter->print_hang_task);
- netif_stop_queue(netdev);
- }
+ else
+ adapter->tx_hang_recheck = 0;
}
adapter->total_tx_bytes += total_tx_bytes;
adapter->total_tx_packets += total_tx_packets;
@@ -3838,6 +3854,7 @@ static int e1000_open(struct net_device *netdev)
e1000_irq_enable(adapter);
+ adapter->tx_hang_recheck = 0;
netif_start_queue(netdev);
adapter->idle_check = true;
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher
@ 2011-12-04 3:26 ` David Miller
2011-12-04 7:28 ` Jeff Kirsher
0 siblings, 1 reply; 18+ messages in thread
From: David Miller @ 2011-12-04 3:26 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: wangyun, netdev, gospo, sassmann, fbl
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Sat, 3 Dec 2011 03:44:26 -0800
> + if ((!adapter->tx_hang_recheck) &&
Excessive parenthesis, please remove.
> + adapter->tx_hang_recheck = 1;
This variable is a bool, set it to true or false.
> + adapter->tx_hang_recheck = 0;
Likewise.
> + adapter->tx_hang_recheck = 0;
Likewise.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-04 3:26 ` David Miller
@ 2011-12-04 7:28 ` Jeff Kirsher
2011-12-05 1:05 ` Michael Wang
0 siblings, 1 reply; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-04 7:28 UTC (permalink / raw)
To: Michael Wang, Flavio Leitner
Cc: David Miller, netdev@vger.kernel.org, gospo@redhat.com,
sassmann@redhat.com
[-- Attachment #1: Type: text/plain, Size: 616 bytes --]
On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Sat, 3 Dec 2011 03:44:26 -0800
>
> > + if ((!adapter->tx_hang_recheck) &&
>
> Excessive parenthesis, please remove.
>
> > + adapter->tx_hang_recheck = 1;
>
> This variable is a bool, set it to true or false.
>
> > + adapter->tx_hang_recheck = 0;
>
> Likewise.
>
> > + adapter->tx_hang_recheck = 0;
>
> Likewise.
Michael/Flavio -
To expedite this patch, I can make the changes that Dave is requesting
and re-submit v2 of the patch, if that is ok with you.
-Jeff
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-04 7:28 ` Jeff Kirsher
@ 2011-12-05 1:05 ` Michael Wang
2011-12-05 6:25 ` Jeff Kirsher
0 siblings, 1 reply; 18+ messages in thread
From: Michael Wang @ 2011-12-05 1:05 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Sat, 3 Dec 2011 03:44:26 -0800
>>
>>> + if ((!adapter->tx_hang_recheck) &&
>>
>> Excessive parenthesis, please remove.
>>
>>> + adapter->tx_hang_recheck = 1;
>>
>> This variable is a bool, set it to true or false.
>>
>>> + adapter->tx_hang_recheck = 0;
>>
>> Likewise.
>>
>>> + adapter->tx_hang_recheck = 0;
>>
>> Likewise.
>
> Michael/Flavio -
>
> To expedite this patch, I can make the changes that Dave is requesting
> and re-submit v2 of the patch, if that is ok with you.
>
Hi, Jeff
That's ok for me, I think it's good if you can work with Dave and make
out a final version for us, if you want my help, please mail me at any
time, I'm glad to work with you.
Flavio:
What's your opinion?
Thanks,
Michael Wang
> -Jeff
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-05 1:05 ` Michael Wang
@ 2011-12-05 6:25 ` Jeff Kirsher
2011-12-05 7:15 ` Michael Wang
0 siblings, 1 reply; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-05 6:25 UTC (permalink / raw)
To: Michael Wang
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
[-- Attachment #1: Type: text/plain, Size: 1358 bytes --]
On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote:
> On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
>
> > On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
> >> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >> Date: Sat, 3 Dec 2011 03:44:26 -0800
> >>
> >>> + if ((!adapter->tx_hang_recheck) &&
> >>
> >> Excessive parenthesis, please remove.
> >>
> >>> + adapter->tx_hang_recheck = 1;
> >>
> >> This variable is a bool, set it to true or false.
> >>
> >>> + adapter->tx_hang_recheck = 0;
> >>
> >> Likewise.
> >>
> >>> + adapter->tx_hang_recheck = 0;
> >>
> >> Likewise.
> >
> > Michael/Flavio -
> >
> > To expedite this patch, I can make the changes that Dave is requesting
> > and re-submit v2 of the patch, if that is ok with you.
> >
>
> Hi, Jeff
>
> That's ok for me, I think it's good if you can work with Dave and make
> out a final version for us, if you want my help, please mail me at any
> time, I'm glad to work with you.
>
> Flavio:
> What's your opinion?
>
> Thanks,
> Michael Wang
I have the patch read to push, so I will go ahead an push v2 out
tonight. Since I am making changes to your patch, I will be removing
your signed-off-by (and Flavio's) and keep you as a CC: so that you can
verify the changes I have made to resolve the issues that Dave saw.
Cheers,
Jeff
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-05 6:25 ` Jeff Kirsher
@ 2011-12-05 7:15 ` Michael Wang
2011-12-05 8:02 ` Jeff Kirsher
0 siblings, 1 reply; 18+ messages in thread
From: Michael Wang @ 2011-12-05 7:15 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
On 12/05/2011 02:25 PM, Jeff Kirsher wrote:
> On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote:
>> On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
>>
>>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
>>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>>>> Date: Sat, 3 Dec 2011 03:44:26 -0800
>>>>
>>>>> + if ((!adapter->tx_hang_recheck) &&
>>>>
>>>> Excessive parenthesis, please remove.
>>>>
>>>>> + adapter->tx_hang_recheck = 1;
>>>>
>>>> This variable is a bool, set it to true or false.
>>>>
>>>>> + adapter->tx_hang_recheck = 0;
>>>>
>>>> Likewise.
>>>>
>>>>> + adapter->tx_hang_recheck = 0;
>>>>
>>>> Likewise.
>>>
>>> Michael/Flavio -
>>>
>>> To expedite this patch, I can make the changes that Dave is requesting
>>> and re-submit v2 of the patch, if that is ok with you.
>>>
>>
>> Hi, Jeff
>>
>> That's ok for me, I think it's good if you can work with Dave and make
>> out a final version for us, if you want my help, please mail me at any
>> time, I'm glad to work with you.
>>
>> Flavio:
>> What's your opinion?
>>
>> Thanks,
>> Michael Wang
>
> I have the patch read to push, so I will go ahead an push v2 out
> tonight. Since I am making changes to your patch, I will be removing
> your signed-off-by (and Flavio's) and keep you as a CC: so that you can
> verify the changes I have made to resolve the issues that Dave saw.
>
Hi, Jeff
Is that means you have a better patch which different from ours, and you
will use your patch to instead of ours?
Because David is just ask for some small change, I think your time zone
may be better to work with him, so I ask for your help.
I was just confused that why our signed-off-by should be removed?
Thanks,
Michael Wang
> Cheers,
> Jeff
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-05 7:15 ` Michael Wang
@ 2011-12-05 8:02 ` Jeff Kirsher
2011-12-05 8:18 ` Michael Wang
0 siblings, 1 reply; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-05 8:02 UTC (permalink / raw)
To: Michael Wang
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
[-- Attachment #1: Type: text/plain, Size: 3212 bytes --]
On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote:
> On 12/05/2011 02:25 PM, Jeff Kirsher wrote:
>
> > On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote:
> >> On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
> >>
> >>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
> >>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >>>> Date: Sat, 3 Dec 2011 03:44:26 -0800
> >>>>
> >>>>> + if ((!adapter->tx_hang_recheck) &&
> >>>>
> >>>> Excessive parenthesis, please remove.
> >>>>
> >>>>> + adapter->tx_hang_recheck = 1;
> >>>>
> >>>> This variable is a bool, set it to true or false.
> >>>>
> >>>>> + adapter->tx_hang_recheck = 0;
> >>>>
> >>>> Likewise.
> >>>>
> >>>>> + adapter->tx_hang_recheck = 0;
> >>>>
> >>>> Likewise.
> >>>
> >>> Michael/Flavio -
> >>>
> >>> To expedite this patch, I can make the changes that Dave is requesting
> >>> and re-submit v2 of the patch, if that is ok with you.
> >>>
> >>
> >> Hi, Jeff
> >>
> >> That's ok for me, I think it's good if you can work with Dave and make
> >> out a final version for us, if you want my help, please mail me at any
> >> time, I'm glad to work with you.
> >>
> >> Flavio:
> >> What's your opinion?
> >>
> >> Thanks,
> >> Michael Wang
> >
> > I have the patch read to push, so I will go ahead an push v2 out
> > tonight. Since I am making changes to your patch, I will be removing
> > your signed-off-by (and Flavio's) and keep you as a CC: so that you can
> > verify the changes I have made to resolve the issues that Dave saw.
> >
>
> Hi, Jeff
>
> Is that means you have a better patch which different from ours, and you
> will use your patch to instead of ours?
>
> Because David is just ask for some small change, I think your time zone
> may be better to work with him, so I ask for your help.
>
> I was just confused that why our signed-off-by should be removed?
>
> Thanks,
> Michael Wang
>
> > Cheers,
> > Jeff
It is your patch (your original work) but since I have made changes to
your patch, I (or anyone for that matter) should not assume that you as
the owner would signed off on the changes that I have made based on
feedback. It would not be right for me to send out a patch with your
signed-off-by which is different from what you originally submitted,
without your ok. Once I send out the v2 of the patch, please feel free
to add your signed-off-by OR acked-by to the patch.
While I personally do not have a problem keeping you as the owner and
your signed-off-by, I believe that takes in several assumptions which
only you as the owner should speak for. I am not trying to take
ownership for stats purposes, I care less about the number of patches I
create and own and would rather make sure that the original owners get
the credit due for the work they did.
So with that, when I send out my next series of patches please feel free
to ACK or Sign-off on the changes made. I just wanted to make sure that
we get these changes in soon (with out delay).
I can wait if you want to keep ownership of the patch, I just wanted to
ensure that we get your patch included as soon as possible based on the
problem it fixes.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-05 8:02 ` Jeff Kirsher
@ 2011-12-05 8:18 ` Michael Wang
2011-12-05 8:24 ` Jeff Kirsher
0 siblings, 1 reply; 18+ messages in thread
From: Michael Wang @ 2011-12-05 8:18 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
On 12/05/2011 04:02 PM, Jeff Kirsher wrote:
> On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote:
>> On 12/05/2011 02:25 PM, Jeff Kirsher wrote:
>>
>>> On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote:
>>>> On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
>>>>
>>>>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
>>>>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>>>>>> Date: Sat, 3 Dec 2011 03:44:26 -0800
>>>>>>
>>>>>>> + if ((!adapter->tx_hang_recheck) &&
>>>>>>
>>>>>> Excessive parenthesis, please remove.
>>>>>>
>>>>>>> + adapter->tx_hang_recheck = 1;
>>>>>>
>>>>>> This variable is a bool, set it to true or false.
>>>>>>
>>>>>>> + adapter->tx_hang_recheck = 0;
>>>>>>
>>>>>> Likewise.
>>>>>>
>>>>>>> + adapter->tx_hang_recheck = 0;
>>>>>>
>>>>>> Likewise.
>>>>>
>>>>> Michael/Flavio -
>>>>>
>>>>> To expedite this patch, I can make the changes that Dave is requesting
>>>>> and re-submit v2 of the patch, if that is ok with you.
>>>>>
>>>>
>>>> Hi, Jeff
>>>>
>>>> That's ok for me, I think it's good if you can work with Dave and make
>>>> out a final version for us, if you want my help, please mail me at any
>>>> time, I'm glad to work with you.
>>>>
>>>> Flavio:
>>>> What's your opinion?
>>>>
>>>> Thanks,
>>>> Michael Wang
>>>
>>> I have the patch read to push, so I will go ahead an push v2 out
>>> tonight. Since I am making changes to your patch, I will be removing
>>> your signed-off-by (and Flavio's) and keep you as a CC: so that you can
>>> verify the changes I have made to resolve the issues that Dave saw.
>>>
>>
>> Hi, Jeff
>>
>> Is that means you have a better patch which different from ours, and you
>> will use your patch to instead of ours?
>>
>> Because David is just ask for some small change, I think your time zone
>> may be better to work with him, so I ask for your help.
>>
>> I was just confused that why our signed-off-by should be removed?
>>
>> Thanks,
>> Michael Wang
>>
>>> Cheers,
>>> Jeff
>
> It is your patch (your original work) but since I have made changes to
> your patch, I (or anyone for that matter) should not assume that you as
> the owner would signed off on the changes that I have made based on
> feedback. It would not be right for me to send out a patch with your
> signed-off-by which is different from what you originally submitted,
> without your ok. Once I send out the v2 of the patch, please feel free
> to add your signed-off-by OR acked-by to the patch.
>
Hi, Jeff
That make sense, I'm sorry but because I'm new to the community, and I
just want to make every thing clear so I can do better in the future.
> While I personally do not have a problem keeping you as the owner and
> your signed-off-by, I believe that takes in several assumptions which
> only you as the owner should speak for. I am not trying to take
> ownership for stats purposes, I care less about the number of patches I
> create and own and would rather make sure that the original owners get
> the credit due for the work they did.
>
I'm so sorry and I regret if I make you unhappy by some wrong word,
please forgive me.
> So with that, when I send out my next series of patches please feel free
> to ACK or Sign-off on the changes made. I just wanted to make sure that
> we get these changes in soon (with out delay).
>
> I can wait if you want to keep ownership of the patch, I just wanted to
> ensure that we get your patch included as soon as possible based on the
> problem it fixes.
Please help us to make the patch perfect, and I'm very glad if I can
have the opportunity to work with you.
Thanks & Best regards
Michael Wang
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [net-next 1/6] e1000e: Avoid wrong check on TX hang
2011-12-05 8:18 ` Michael Wang
@ 2011-12-05 8:24 ` Jeff Kirsher
0 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-05 8:24 UTC (permalink / raw)
To: Michael Wang
Cc: Flavio Leitner, David Miller, netdev@vger.kernel.org,
gospo@redhat.com, sassmann@redhat.com
[-- Attachment #1: Type: text/plain, Size: 4322 bytes --]
On Mon, 2011-12-05 at 00:18 -0800, Michael Wang wrote:
> On 12/05/2011 04:02 PM, Jeff Kirsher wrote:
>
> > On Sun, 2011-12-04 at 23:15 -0800, Michael Wang wrote:
> >> On 12/05/2011 02:25 PM, Jeff Kirsher wrote:
> >>
> >>> On Sun, 2011-12-04 at 17:05 -0800, Michael Wang wrote:
> >>>> On 12/04/2011 03:28 PM, Jeff Kirsher wrote:
> >>>>
> >>>>> On Sat, 2011-12-03 at 19:26 -0800, David Miller wrote:
> >>>>>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> >>>>>> Date: Sat, 3 Dec 2011 03:44:26 -0800
> >>>>>>
> >>>>>>> + if ((!adapter->tx_hang_recheck) &&
> >>>>>>
> >>>>>> Excessive parenthesis, please remove.
> >>>>>>
> >>>>>>> + adapter->tx_hang_recheck = 1;
> >>>>>>
> >>>>>> This variable is a bool, set it to true or false.
> >>>>>>
> >>>>>>> + adapter->tx_hang_recheck = 0;
> >>>>>>
> >>>>>> Likewise.
> >>>>>>
> >>>>>>> + adapter->tx_hang_recheck = 0;
> >>>>>>
> >>>>>> Likewise.
> >>>>>
> >>>>> Michael/Flavio -
> >>>>>
> >>>>> To expedite this patch, I can make the changes that Dave is requesting
> >>>>> and re-submit v2 of the patch, if that is ok with you.
> >>>>>
> >>>>
> >>>> Hi, Jeff
> >>>>
> >>>> That's ok for me, I think it's good if you can work with Dave and make
> >>>> out a final version for us, if you want my help, please mail me at any
> >>>> time, I'm glad to work with you.
> >>>>
> >>>> Flavio:
> >>>> What's your opinion?
> >>>>
> >>>> Thanks,
> >>>> Michael Wang
> >>>
> >>> I have the patch read to push, so I will go ahead an push v2 out
> >>> tonight. Since I am making changes to your patch, I will be removing
> >>> your signed-off-by (and Flavio's) and keep you as a CC: so that you can
> >>> verify the changes I have made to resolve the issues that Dave saw.
> >>>
> >>
> >> Hi, Jeff
> >>
> >> Is that means you have a better patch which different from ours, and you
> >> will use your patch to instead of ours?
> >>
> >> Because David is just ask for some small change, I think your time zone
> >> may be better to work with him, so I ask for your help.
> >>
> >> I was just confused that why our signed-off-by should be removed?
> >>
> >> Thanks,
> >> Michael Wang
> >>
> >>> Cheers,
> >>> Jeff
> >
> > It is your patch (your original work) but since I have made changes to
> > your patch, I (or anyone for that matter) should not assume that you as
> > the owner would signed off on the changes that I have made based on
> > feedback. It would not be right for me to send out a patch with your
> > signed-off-by which is different from what you originally submitted,
> > without your ok. Once I send out the v2 of the patch, please feel free
> > to add your signed-off-by OR acked-by to the patch.
> >
>
> Hi, Jeff
>
> That make sense, I'm sorry but because I'm new to the community, and I
> just want to make every thing clear so I can do better in the future.
No problem, just trying to help get your work/fix upstream.
>
> > While I personally do not have a problem keeping you as the owner and
> > your signed-off-by, I believe that takes in several assumptions which
> > only you as the owner should speak for. I am not trying to take
> > ownership for stats purposes, I care less about the number of patches I
> > create and own and would rather make sure that the original owners get
> > the credit due for the work they did.
> >
>
>
> I'm so sorry and I regret if I make you unhappy by some wrong word,
> please forgive me.
Not at all, you have not made me unhappy, so no need to apologize. I am
just sorry if my email came across frustrated or unhappy.
>
> > So with that, when I send out my next series of patches please feel free
> > to ACK or Sign-off on the changes made. I just wanted to make sure that
> > we get these changes in soon (with out delay).
> >
> > I can wait if you want to keep ownership of the patch, I just wanted to
> > ensure that we get your patch included as soon as possible based on the
> > problem it fixes.
>
> Please help us to make the patch perfect, and I'm very glad if I can
> have the opportunity to work with you.
I am always here to help and welcome any submissions you want to provide
to make our Intel drivers better. Thank you!
>
> Thanks & Best regards
> Michael Wang
>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
2011-12-03 11:44 ` [net-next 3/6] igb: Update DMA Coalescing threshold calculation Jeff Kirsher
` (3 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: Bruce Allan, netdev, gospo, sassmann, Mike McElroy, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Based on a patch from Mike McElroy created against the out-of-tree e1000e
driver:
Hitting the BUG_ON in napi_enable(). Code inspection shows that this can
only be triggered by calling napi_enable() twice without an intervening
napi_disable().
I saw the following sequence of events in the stack trace:
1) We simulated a cable pull using an Extreme switch.
2) e1000_tx_timeout() was entered.
3) e1000_reset_task() was called. Saw the message from e_err() in the
console log.
4) e1000_reinit_locked was called. This function calls e1000_down() and
e1000_up(). These functions call napi_disable() and napi_enable()
respectively.
5) Then on another thread, a monitor task saw carrier was down and executed
'ip set link down' and 'ip set link up' commands.
6) Saw the '_E1000_RESETTING'warning fron the e1000_close function.
7) Either the e1000_open() executed between the e1000_down() and e1000_up()
calls in step 4 or the e1000_open() call executed after the e1000_up()
call. In either case, napi_enable() is called twice which triggers the
BUG_ON.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Cc: Mike McElroy <mike.mcelroy@stratus.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 3c12e6a..ef6546f 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3516,7 +3516,6 @@ int e1000e_up(struct e1000_adapter *adapter)
clear_bit(__E1000_DOWN, &adapter->state);
- napi_enable(&adapter->napi);
if (adapter->msix_entries)
e1000_configure_msix(adapter);
e1000_irq_enable(adapter);
@@ -3578,7 +3577,6 @@ void e1000e_down(struct e1000_adapter *adapter)
e1e_flush();
usleep_range(10000, 20000);
- napi_disable(&adapter->napi);
e1000_irq_disable(adapter);
del_timer_sync(&adapter->watchdog_timer);
@@ -3901,6 +3899,8 @@ static int e1000_close(struct net_device *netdev)
pm_runtime_get_sync(&pdev->dev);
+ napi_disable(&adapter->napi);
+
if (!test_bit(__E1000_DOWN, &adapter->state)) {
e1000e_down(adapter);
e1000_free_irq(adapter);
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 3/6] igb: Update DMA Coalescing threshold calculation.
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2011-12-03 11:44 ` [net-next 1/6] e1000e: Avoid wrong check on TX hang Jeff Kirsher
2011-12-03 11:44 ` [net-next 2/6] e1000e: hitting BUG_ON() from napi_enable Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
2011-12-03 11:44 ` [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix Jeff Kirsher
` (2 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: Matthew Vick, netdev, gospo, sassmann, Jeff Kirsher
From: Matthew Vick <matthew.vick@intel.com>
This patch updates the DMA Coalescing feature parameters to account for
larger MTUs. Previously, sufficient space may not have been allocated in
the receive buffer, causing packet drop.
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igb/igb_main.c | 26 +++++++++++++++++++-------
1 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index b66b8aa..143cfeb 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -7061,15 +7061,28 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
wr32(E1000_DMCTXTH, 0);
/*
- * DMA Coalescing high water mark needs to be higher
- * than the RX threshold. set hwm to PBA - 2 * max
- * frame size
+ * DMA Coalescing high water mark needs to be greater
+ * than the Rx threshold. Set hwm to PBA - max frame
+ * size in 16B units, capping it at PBA - 6KB.
*/
- hwm = pba - (2 * adapter->max_frame_size);
+ hwm = 64 * pba - adapter->max_frame_size / 16;
+ if (hwm < 64 * (pba - 6))
+ hwm = 64 * (pba - 6);
+ reg = rd32(E1000_FCRTC);
+ reg &= ~E1000_FCRTC_RTH_COAL_MASK;
+ reg |= ((hwm << E1000_FCRTC_RTH_COAL_SHIFT)
+ & E1000_FCRTC_RTH_COAL_MASK);
+ wr32(E1000_FCRTC, reg);
+
+ /*
+ * Set the DMA Coalescing Rx threshold to PBA - 2 * max
+ * frame size, capping it at PBA - 10KB.
+ */
+ dmac_thr = pba - adapter->max_frame_size / 512;
+ if (dmac_thr < pba - 10)
+ dmac_thr = pba - 10;
reg = rd32(E1000_DMACR);
reg &= ~E1000_DMACR_DMACTHR_MASK;
- dmac_thr = pba - 4;
-
reg |= ((dmac_thr << E1000_DMACR_DMACTHR_SHIFT)
& E1000_DMACR_DMACTHR_MASK);
@@ -7085,7 +7098,6 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba)
* coalescing(smart fifb)-UTRESH=0
*/
wr32(E1000_DMCRTRH, 0);
- wr32(E1000_FCRTC, hwm);
reg = (IGB_DMCTLX_DCFLUSH_DIS | 0x4);
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2011-12-03 11:44 ` [net-next 3/6] igb: Update DMA Coalescing threshold calculation Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
2011-12-03 11:44 ` [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware Jeff Kirsher
2011-12-03 11:44 ` [net-next 6/6] ixgbe: Remove function prototype for non-existent function Jeff Kirsher
5 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
The order of operations is important in DCBnl set_all(). When FCoE
is configured it uses the up2tc map to learn which queues to configure
the hardware offloads on. Therefore we need to setup the map before
configuring FCoE.
This is only seen when the both up2tc mappings and APP info are
configured simultaneously.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 77 +++++++++--------------
1 files changed, 29 insertions(+), 48 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index 33b93ff..8c056c0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -309,6 +309,27 @@ static void ixgbe_dcbnl_get_pfc_cfg(struct net_device *netdev, int priority,
*setting = adapter->dcb_cfg.tc_config[priority].dcb_pfc;
}
+#ifdef IXGBE_FCOE
+static void ixgbe_dcbnl_devreset(struct net_device *dev)
+{
+ struct ixgbe_adapter *adapter = netdev_priv(dev);
+
+ while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
+ usleep_range(1000, 2000);
+
+ if (netif_running(dev))
+ dev->netdev_ops->ndo_stop(dev);
+
+ ixgbe_clear_interrupt_scheme(adapter);
+ ixgbe_init_interrupt_scheme(adapter);
+
+ if (netif_running(dev))
+ dev->netdev_ops->ndo_open(dev);
+
+ clear_bit(__IXGBE_RESETTING, &adapter->state);
+}
+#endif
+
static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
{
struct ixgbe_adapter *adapter = netdev_priv(netdev);
@@ -338,27 +359,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
if (ret)
return DCB_NO_HW_CHG;
-#ifdef IXGBE_FCOE
- if (up && !(up & (1 << adapter->fcoe.up)))
- adapter->dcb_set_bitmap |= BIT_APP_UPCHG;
-
- /*
- * Only take down the adapter if an app change occurred. FCoE
- * may shuffle tx rings in this case and this can not be done
- * without a reset currently.
- */
- if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) {
- while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state))
- usleep_range(1000, 2000);
-
- adapter->fcoe.up = ffs(up) - 1;
-
- if (netif_running(netdev))
- netdev->netdev_ops->ndo_stop(netdev);
- ixgbe_clear_interrupt_scheme(adapter);
- }
-#endif
-
if (adapter->dcb_cfg.pfc_mode_enable) {
switch (adapter->hw.mac.type) {
case ixgbe_mac_82599EB:
@@ -385,15 +385,6 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
}
}
-#ifdef IXGBE_FCOE
- if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) {
- ixgbe_init_interrupt_scheme(adapter);
- if (netif_running(netdev))
- netdev->netdev_ops->ndo_open(netdev);
- ret = DCB_HW_CHG_RST;
- }
-#endif
-
if (adapter->dcb_set_bitmap & (BIT_PG_TX|BIT_PG_RX)) {
u16 refill[MAX_TRAFFIC_CLASS], max[MAX_TRAFFIC_CLASS];
u8 bwg_id[MAX_TRAFFIC_CLASS], prio_type[MAX_TRAFFIC_CLASS];
@@ -442,8 +433,14 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
if (adapter->dcb_cfg.pfc_mode_enable)
adapter->hw.fc.current_mode = ixgbe_fc_pfc;
- if (adapter->dcb_set_bitmap & BIT_APP_UPCHG)
- clear_bit(__IXGBE_RESETTING, &adapter->state);
+#ifdef IXGBE_FCOE
+ if (up && !(up & (1 << adapter->fcoe.up))) {
+ adapter->fcoe.up = ffs(up) - 1;
+ ixgbe_dcbnl_devreset(netdev);
+ ret = DCB_HW_CHG_RST;
+ }
+#endif
+
adapter->dcb_set_bitmap = 0x00;
return ret;
}
@@ -661,22 +658,6 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev,
return ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, prio_tc);
}
-#ifdef IXGBE_FCOE
-static void ixgbe_dcbnl_devreset(struct net_device *dev)
-{
- struct ixgbe_adapter *adapter = netdev_priv(dev);
-
- if (netif_running(dev))
- dev->netdev_ops->ndo_stop(dev);
-
- ixgbe_clear_interrupt_scheme(adapter);
- ixgbe_init_interrupt_scheme(adapter);
-
- if (netif_running(dev))
- dev->netdev_ops->ndo_open(dev);
-}
-#endif
-
static int ixgbe_dcbnl_ieee_setapp(struct net_device *dev,
struct dcb_app *app)
{
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware.
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2011-12-03 11:44 ` [net-next 4/6] ixgbe: DCBnl set_all, order of operations fix Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
2011-12-03 11:44 ` [net-next 6/6] ixgbe: Remove function prototype for non-existent function Jeff Kirsher
5 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: John Fastabend, netdev, gospo, sassmann, Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
Transitioning through an IEEE DCBX version from a CEE DCBX
and back (CEE->IEEE->CEE) may leave IEEE attributes programmed
in the hardware. DCB uses a bit field in the set routines to
determine which attributes PG, PFC, APP need to be reprogrammed.
This is needed because user flow allows queueing a series
of changes and then reprogramming the hardware with the
entire set in one operation.
When transitioning from IEEE DCBX mode back into CEE DCBX
mode the PG and PFC bits need to be set so the possibly
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
different CEE attributes get programmed into the device.
This patch fixes broken logic that was evaluating to 0
and never setting any bits. Further this removes some
checks for num_tc in set routines. This logic only worked
when the number of traffic classes and user priorities
were equal. This is no longer the case for X540 devices.
Besides we can trust user input in this case if the
device is incorrectly configured the DCB bandwidths will
be incorrectly mapped but no OOPs, BUG, or hardware
failure will occur.
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
index 8c056c0..da31735 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
@@ -158,10 +158,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
{
struct ixgbe_adapter *adapter = netdev_priv(netdev);
- /* Abort a bad configuration */
- if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs)
- return;
-
if (prio != DCB_ATTR_VALUE_UNDEFINED)
adapter->temp_dcb_cfg.tc_config[tc].path[0].prio_type = prio;
if (bwg_id != DCB_ATTR_VALUE_UNDEFINED)
@@ -185,7 +181,7 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_tx(struct net_device *netdev, int tc,
if (adapter->temp_dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap !=
adapter->dcb_cfg.tc_config[tc].path[0].up_to_tc_bitmap)
- adapter->dcb_set_bitmap |= BIT_PFC;
+ adapter->dcb_set_bitmap |= BIT_PFC | BIT_APP_UPCHG;
}
static void ixgbe_dcbnl_set_pg_bwg_cfg_tx(struct net_device *netdev, int bwg_id,
@@ -206,10 +202,6 @@ static void ixgbe_dcbnl_set_pg_tc_cfg_rx(struct net_device *netdev, int tc,
{
struct ixgbe_adapter *adapter = netdev_priv(netdev);
- /* Abort bad configurations */
- if (ffs(up_map) > adapter->dcb_cfg.num_tcs.pg_tcs)
- return;
-
if (prio != DCB_ATTR_VALUE_UNDEFINED)
adapter->temp_dcb_cfg.tc_config[tc].path[1].prio_type = prio;
if (bwg_id != DCB_ATTR_VALUE_UNDEFINED)
@@ -434,7 +426,12 @@ static u8 ixgbe_dcbnl_set_all(struct net_device *netdev)
adapter->hw.fc.current_mode = ixgbe_fc_pfc;
#ifdef IXGBE_FCOE
- if (up && !(up & (1 << adapter->fcoe.up))) {
+ /* Reprogam FCoE hardware offloads when the traffic class
+ * FCoE is using changes. This happens if the APP info
+ * changes or the up2tc mapping is updated.
+ */
+ if ((up && !(up & (1 << adapter->fcoe.up))) ||
+ (adapter->dcb_set_bitmap & BIT_APP_UPCHG)) {
adapter->fcoe.up = ffs(up) - 1;
ixgbe_dcbnl_devreset(netdev);
ret = DCB_HW_CHG_RST;
@@ -742,7 +739,9 @@ static u8 ixgbe_dcbnl_setdcbx(struct net_device *dev, u8 mode)
ixgbe_dcbnl_ieee_setets(dev, &ets);
ixgbe_dcbnl_ieee_setpfc(dev, &pfc);
} else if (mode & DCB_CAP_DCBX_VER_CEE) {
- adapter->dcb_set_bitmap |= (BIT_PFC & BIT_PG_TX & BIT_PG_RX);
+ u8 mask = BIT_PFC | BIT_PG_TX | BIT_PG_RX | BIT_APP_UPCHG;
+
+ adapter->dcb_set_bitmap |= mask;
ixgbe_dcbnl_set_all(dev);
} else {
/* Drop into single TC mode strict priority as this
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [net-next 6/6] ixgbe: Remove function prototype for non-existent function
2011-12-03 11:44 [net-next 0/6][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2011-12-03 11:44 ` [net-next 5/6] ixgbe: DCB: IEEE transitions may fail to reprogram hardware Jeff Kirsher
@ 2011-12-03 11:44 ` Jeff Kirsher
5 siblings, 0 replies; 18+ messages in thread
From: Jeff Kirsher @ 2011-12-03 11:44 UTC (permalink / raw)
To: davem; +Cc: Greg Rose, netdev, gospo, sassmann, Jeff Kirsher
From: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
index df04f1a..e8badab 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h
@@ -33,7 +33,6 @@ void ixgbe_msg_task(struct ixgbe_adapter *adapter);
int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask);
void ixgbe_disable_tx_rx(struct ixgbe_adapter *adapter);
void ixgbe_ping_all_vfs(struct ixgbe_adapter *adapter);
-void ixgbe_dump_registers(struct ixgbe_adapter *adapter);
int ixgbe_ndo_set_vf_mac(struct net_device *netdev, int queue, u8 *mac);
int ixgbe_ndo_set_vf_vlan(struct net_device *netdev, int queue, u16 vlan,
u8 qos);
--
1.7.6.4
^ permalink raw reply related [flat|nested] 18+ messages in thread