netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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
* [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
* [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

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).