* [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
@ 2014-08-06 14:32 Koehrer Mathias (ETAS/ESW5)
2014-08-06 19:17 ` Richard Cochran
0 siblings, 1 reply; 14+ messages in thread
From: Koehrer Mathias (ETAS/ESW5) @ 2014-08-06 14:32 UTC (permalink / raw)
To: Sergei Shtylyov, Nick Krause
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
With the Intel 82527EI (driver: e1000e) there is an issue when running
the ptpd2 program, that leads to a kernel oops.
The reason is here that in e1000_xmit_frame() a work queue will be
scheduled that has not been initialized in this case.
The work queue "tx_hwstamp_work" will only be initialized if
adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
This check is missing in e1000_xmit_frame().
The following patch adds the missing check.
Signed-off-by: Mathias Koehrer <mathias.koehrer@etas.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Index: linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c
===================================================================
--- linux-3.12.26.orig/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-04 10:56:56.000000000 +0200
+++ linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-06 16:22:10.000000000 +0200
@@ -5549,8 +5549,9 @@
count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit,
nr_frags);
if (count) {
- if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
- !adapter->tx_hwtstamp_skb)) {
+ if ((adapter->flags & FLAG_HAS_HW_TIMESTAMP) &&
+ unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
+ !adapter->tx_hwtstamp_skb)) {
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
tx_flags |= E1000_TX_FLAGS_HWTSTAMP;
adapter->tx_hwtstamp_skb = skb_get(skb);
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 14:32 [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support Koehrer Mathias (ETAS/ESW5)
@ 2014-08-06 19:17 ` Richard Cochran
[not found] ` <CAPDOMVjYkfM49E9DM0=SDDRncLQbXxR8NQE9SrsW++YycMGU5w@mail.gmail.com>
0 siblings, 1 reply; 14+ messages in thread
From: Richard Cochran @ 2014-08-06 19:17 UTC (permalink / raw)
To: Koehrer Mathias (ETAS/ESW5)
Cc: Sergei Shtylyov, Nick Krause, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org
On Wed, Aug 06, 2014 at 02:32:16PM +0000, Koehrer Mathias (ETAS/ESW5) wrote:
> With the Intel 82527EI (driver: e1000e) there is an issue when running
> the ptpd2 program, that leads to a kernel oops.
> The reason is here that in e1000_xmit_frame() a work queue will be
> scheduled that has not been initialized in this case.
> The work queue "tx_hwstamp_work" will only be initialized if
> adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
> This check is missing in e1000_xmit_frame().
Why all the ragged lines? Better to use an editor that knows how to
justify a paragraph, more like this:
With the Intel 82527EI (driver: e1000e) there is an issue when running
the ptpd2 program, that leads to a kernel oops. The reason is here
that in e1000_xmit_frame() a work queue will be scheduled that has not
been initialized in this case. The work queue "tx_hwstamp_work" will
only be initialized if adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
This check is missing in e1000_xmit_frame().
That not only looks nicer, but it is also more readable.
Thanks,
Richard
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
@ 2014-08-06 14:27 Koehrer Mathias (ETAS/ESW5)
2014-08-06 14:30 ` Sergei Shtylyov
0 siblings, 1 reply; 14+ messages in thread
From: Koehrer Mathias (ETAS/ESW5) @ 2014-08-06 14:27 UTC (permalink / raw)
To: Sergei Shtylyov, Nick Krause
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
With the Intel 82527EI (driver: e1000e) there is an issue when running
the ptpd2 program, that leads to a kernel oops.
The reason is here that in e1000_xmit_frame() a work queue will be
scheduled that has not been initialized in this case.
The work queue "tx_hwstamp_work" will only be initialized if
adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
This check is missing in e1000_xmit_frame().
The following patch adds the missing check.
---
drivers/net/ethernet/intel/e1000e/netdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Index: linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c
===================================================================
--- linux-3.12.26.orig/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-04 10:56:56.000000000 +0200
+++ linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-06 16:22:10.000000000 +0200
@@ -5549,8 +5549,9 @@
count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit,
nr_frags);
if (count) {
- if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
- !adapter->tx_hwtstamp_skb)) {
+ if ((adapter->flags & FLAG_HAS_HW_TIMESTAMP) &&
+ unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
+ !adapter->tx_hwtstamp_skb)) {
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
tx_flags |= E1000_TX_FLAGS_HWTSTAMP;
adapter->tx_hwtstamp_skb = skb_get(skb);
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 14:27 Koehrer Mathias (ETAS/ESW5)
@ 2014-08-06 14:30 ` Sergei Shtylyov
2014-08-06 15:09 ` Henrique de Moraes Holschuh
0 siblings, 1 reply; 14+ messages in thread
From: Sergei Shtylyov @ 2014-08-06 14:30 UTC (permalink / raw)
To: Koehrer Mathias (ETAS/ESW5), Nick Krause
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
On 8/6/2014 6:27 PM, Koehrer Mathias (ETAS/ESW5) wrote:
> With the Intel 82527EI (driver: e1000e) there is an issue when running
> the ptpd2 program, that leads to a kernel oops.
> The reason is here that in e1000_xmit_frame() a work queue will be
> scheduled that has not been initialized in this case.
> The work queue "tx_hwstamp_work" will only be initialized if
> adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
> This check is missing in e1000_xmit_frame().
> The following patch adds the missing check.
OK, but this time you forgot your sign-off. :-)
WBR, Sergei
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 14:30 ` Sergei Shtylyov
@ 2014-08-06 15:09 ` Henrique de Moraes Holschuh
2014-08-06 15:21 ` Alexander Duyck
0 siblings, 1 reply; 14+ messages in thread
From: Henrique de Moraes Holschuh @ 2014-08-06 15:09 UTC (permalink / raw)
To: Sergei Shtylyov, Koehrer Mathias, Nick Krause; +Cc: linux-kernel, netdev
On Wed, Aug 6, 2014, at 11:30, Sergei Shtylyov wrote:
> On 8/6/2014 6:27 PM, Koehrer Mathias (ETAS/ESW5) wrote:
>
> > With the Intel 82527EI (driver: e1000e) there is an issue when running
> > the ptpd2 program, that leads to a kernel oops.
> > The reason is here that in e1000_xmit_frame() a work queue will be
> > scheduled that has not been initialized in this case.
> > The work queue "tx_hwstamp_work" will only be initialized if
> > adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
> > This check is missing in e1000_xmit_frame().
>
> > The following patch adds the missing check.
>
> OK, but this time you forgot your sign-off. :-)
Also, shouldn't the added test be inside the unlikely() ?
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 15:09 ` Henrique de Moraes Holschuh
@ 2014-08-06 15:21 ` Alexander Duyck
2014-08-06 15:26 ` Alexander Duyck
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Duyck @ 2014-08-06 15:21 UTC (permalink / raw)
To: Henrique de Moraes Holschuh, Sergei Shtylyov, Koehrer Mathias,
Nick Krause
Cc: linux-kernel, netdev
On 08/06/2014 08:09 AM, Henrique de Moraes Holschuh wrote:
> On Wed, Aug 6, 2014, at 11:30, Sergei Shtylyov wrote:
>> On 8/6/2014 6:27 PM, Koehrer Mathias (ETAS/ESW5) wrote:
>>
>>> With the Intel 82527EI (driver: e1000e) there is an issue when running
>>> the ptpd2 program, that leads to a kernel oops.
>>> The reason is here that in e1000_xmit_frame() a work queue will be
>>> scheduled that has not been initialized in this case.
>>> The work queue "tx_hwstamp_work" will only be initialized if
>>> adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
>>> This check is missing in e1000_xmit_frame().
>>
>>> The following patch adds the missing check.
>>
>> OK, but this time you forgot your sign-off. :-)
>
> Also, shouldn't the added test be inside the unlikely() ?
>
That shouldn't be necessary, but it might be better to place the new
check after the unlikely. So you do the unlikely check first, then the
adapter check to see if we support Tx timestamping. That way we can
avoid any unnecessary checks in the adapter structure.
Thanks,
Alex
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 15:21 ` Alexander Duyck
@ 2014-08-06 15:26 ` Alexander Duyck
[not found] ` <CAPDOMVgHmQeqOGj1MegRa=gusGXMn5t7cwCNnutpc1_q_fzyYg@mail.gmail.com>
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Duyck @ 2014-08-06 15:26 UTC (permalink / raw)
To: Henrique de Moraes Holschuh, Sergei Shtylyov, Koehrer Mathias,
Nick Krause
Cc: linux-kernel, netdev
On 08/06/2014 08:21 AM, Alexander Duyck wrote:
> On 08/06/2014 08:09 AM, Henrique de Moraes Holschuh wrote:
>> On Wed, Aug 6, 2014, at 11:30, Sergei Shtylyov wrote:
>>> On 8/6/2014 6:27 PM, Koehrer Mathias (ETAS/ESW5) wrote:
>>>
>>>> With the Intel 82527EI (driver: e1000e) there is an issue when running
>>>> the ptpd2 program, that leads to a kernel oops.
>>>> The reason is here that in e1000_xmit_frame() a work queue will be
>>>> scheduled that has not been initialized in this case.
>>>> The work queue "tx_hwstamp_work" will only be initialized if
>>>> adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
>>>> This check is missing in e1000_xmit_frame().
>>>
>>>> The following patch adds the missing check.
>>>
>>> OK, but this time you forgot your sign-off. :-)
>>
>> Also, shouldn't the added test be inside the unlikely() ?
>>
>
> That shouldn't be necessary, but it might be better to place the new
> check after the unlikely. So you do the unlikely check first, then the
> adapter check to see if we support Tx timestamping. That way we can
> avoid any unnecessary checks in the adapter structure.
>
> Thanks,
>
> Alex
>
Actually you might want to even take it one step further and break out
the test as follows (note this is only pseudo-code:
unlikely(skb->tx_flags & HW_TSTAMP) &&
(adapter->flags & HAS_HW_TSTAMP) &&
!adapter->tx_hwtstamp_skb
There isn't much point in wrapping the entire statement in unlikely, by
wrapping just the first test the rest of the conditional checks can be
pushed into the branch which will likely require a jump to some remote
block of code and should streamline the hot-path.
Thanks,
Alex
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
@ 2014-08-06 13:56 Koehrer Mathias (ETAS/ESW5)
2014-08-06 14:05 ` Sergei Shtylyov
0 siblings, 1 reply; 14+ messages in thread
From: Koehrer Mathias (ETAS/ESW5) @ 2014-08-06 13:56 UTC (permalink / raw)
To: Nick Krause; +Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
With the Intel 82527EI (driver: e1000e) there is an issue when running the ptpd2 program, that leads to a kernel oops.
The reason is here that in e1000_xmit_frame() a work queue will be scheduled that has not been initialized in this case.
The work queue "tx_hwstamp_work" will only be initialized if adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
This check is missing in e1000_xmit_frame().
The following patch adds the missing check.
Signed-off-by: Mathias Koehrer <mathias.koehrer@etas.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c
===================================================================
--- linux-3.12.26.orig/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-04 10:56:56.000000000 +0200
+++ linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-06 15:15:42.000000000 +0200
@@ -5549,7 +5549,8 @@
count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit,
nr_frags);
if (count) {
- if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
+ if ((adapter->flags & FLAG_HAS_HW_TIMESTAMP) &&
+ unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
!adapter->tx_hwtstamp_skb)) {
skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
tx_flags |= E1000_TX_FLAGS_HWTSTAMP;
--
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support
2014-08-06 13:56 Koehrer Mathias (ETAS/ESW5)
@ 2014-08-06 14:05 ` Sergei Shtylyov
0 siblings, 0 replies; 14+ messages in thread
From: Sergei Shtylyov @ 2014-08-06 14:05 UTC (permalink / raw)
To: Koehrer Mathias (ETAS/ESW5), Nick Krause
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Hello.
On 8/6/2014 5:56 PM, Koehrer Mathias (ETAS/ESW5) wrote:
> With the Intel 82527EI (driver: e1000e) there is an issue when running the ptpd2 program, that leads to a kernel oops.
> The reason is here that in e1000_xmit_frame() a work queue will be scheduled that has not been initialized in this case.
> The work queue "tx_hwstamp_work" will only be initialized if adapter->flags & FLAG_HAS_HW_TIMESTAMP set.
> This check is missing in e1000_xmit_frame().
Please wrap your changelog at 80 columns or less.
> The following patch adds the missing check.
> Signed-off-by: Mathias Koehrer <mathias.koehrer@etas.com>
> ---
> drivers/net/ethernet/intel/e1000e/netdev.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> Index: linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c
> ===================================================================
> --- linux-3.12.26.orig/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-04 10:56:56.000000000 +0200
> +++ linux-3.12.26/drivers/net/ethernet/intel/e1000e/netdev.c 2014-08-06 15:15:42.000000000 +0200
> @@ -5549,7 +5549,8 @@
> count = e1000_tx_map(tx_ring, skb, first, adapter->tx_fifo_limit,
> nr_frags);
> if (count) {
> - if (unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
Your mailer has corrupted the patch -- all tabs were converted to spaces.
> + if ((adapter->flags & FLAG_HAS_HW_TIMESTAMP) &&
> + unlikely((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) &&
When you break the line with the *if* statement, continuation lines should
start on a column right after ( above, according to the networking coding style.
WBR, Sergei
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-08-07 6:20 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-06 14:32 [PATCH] Fix e1000e with Intel 82572EI that has no hardware timestamp support Koehrer Mathias (ETAS/ESW5)
2014-08-06 19:17 ` Richard Cochran
[not found] ` <CAPDOMVjYkfM49E9DM0=SDDRncLQbXxR8NQE9SrsW++YycMGU5w@mail.gmail.com>
2014-08-06 19:32 ` Richard Cochran
[not found] ` <CAPDOMViFCifeUoOgExuG7Q6_ObGj20g59siyMxWeKN=Zr2Kbdg@mail.gmail.com>
2014-08-06 19:54 ` Richard Cochran
2014-08-07 6:10 ` Koehrer Mathias (ETAS/ESW5)
2014-08-07 6:20 ` Jeff Kirsher
-- strict thread matches above, loose matches on Subject: below --
2014-08-06 14:27 Koehrer Mathias (ETAS/ESW5)
2014-08-06 14:30 ` Sergei Shtylyov
2014-08-06 15:09 ` Henrique de Moraes Holschuh
2014-08-06 15:21 ` Alexander Duyck
2014-08-06 15:26 ` Alexander Duyck
[not found] ` <CAPDOMVgHmQeqOGj1MegRa=gusGXMn5t7cwCNnutpc1_q_fzyYg@mail.gmail.com>
2014-08-06 20:19 ` Alexander Duyck
2014-08-06 13:56 Koehrer Mathias (ETAS/ESW5)
2014-08-06 14:05 ` Sergei Shtylyov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).