Skip to contentSkip to conversation

backports: move up to next-20141117

PATCH In review Luis R. Rodriguez 3 participants 8 messages Nov 20, 2014

lore
Share & tools
lore
#0 lore raw

cover backports: move up to next-20141117

From: "Luis R. Rodriguez" <[email protected]>

Here's a few required backport changes to get us up from next-20141114 to next-20141117. The first two patches are example *simple* upstream changes we should consider evaluating the possibility to automatically infer what is required to do and automatically backport. We'd need to deduce file renames or file splitting. Consider this as part of the automation TODO list. It doesn't seem like we need any special tools for this, but simply some inference based evaluation of deltas.

Luis R. Rodriguez (5):
backports: rename wpan-phy.h to cfg802154.h
backports: address splitting of v4l2-mediabus.h to two files
backports: bump I2C_SI4713 to v3.13
backports: backport netdev_rss_key_fill()
backports: refresh patches for next-20141117

 backport/backport-include/linux/netdevice.h        | 25 ++++++++++++++++++++++
 backport/compat/backport-3.19.c                    | 15 ++++++++++++-
 copy-list                                          |  3 ++-
 dependencies                                       | 17 +++++++++++++++
 .../0032-sriov_configure/igb_sriov_configure.patch |  8 +++----
 .../0033-ndo_vlan_rx_vid/igb_ndo_vlan_rx_vid.patch |  8 +++----
 .../igb_ndo_set_vf_spoofchk.patch                  |  6 +++---
 .../network/0035-skb_no_fcs/igb_skb_no_fcs.patch   |  2 +-
 .../network/0043-ndo_set_vf_rate/igb.patch         |  8 +++----
 .../network/0048-no_ndo_xmit_flush/igb.patch       |  2 +-
 .../network/0049-no-pfmemalloc/igb.patch           |  4 ++--
 11 files changed, 77 insertions(+), 21 deletions(-)
Signature · 1 line
2.1.1
#1 lore raw

PATCH 1/5 backports: rename wpan-phy.h to cfg802154.h

From: "Luis R. Rodriguez" <[email protected]>

Address the renaming. This is an example type of upstream that we should easily be able to automatically backport through inference. Logic:

for f in copy_list:
if f in git_delta_renamed:
adjust_copy_list(f)

We'd first have to build a series of types of changes from the delta between the last linux-next tag we tracked and the currenty evaluated one, the git_delta_renamed would contain a list of renames that happened between the two tags.

commit 5ad60d36993596f7b3b958500f9c66c5338cd855

Author: Alexander Aring <[email protected]>
Date:   Sat Oct 25 09:41:02 2014 +0200

ieee802154: move wpan-phy.h to cfg802154.h

The wpan-phy header contains the wpan_phy struct information. Later this header will be have similar function like cfg80211 header. The cfg80211 header contains the wiphy struct which is identically the wpan_phy struct inside 802.15.4 subsystem.

---
 copy-list | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
copy-list +1 -1
index d11b051..b7ac165 100644
@@ -167,7 +167,7 @@ include/linux/ieee802154.h
 include/net/af_ieee802154.h
 include/linux/nl802154.h
 include/net/ieee802154_netdev.h
-include/net/wpan-phy.h
+include/net/cfg802154.h
 include/linux/spi/at86rf230.h
 include/linux/spi/cc2520.h
 net/6lowpan/
Signature · 1 line
2.1.1
#2 lore raw

Re: [PATCH 1/5] backports: rename wpan-phy.h to cfg802154.h

Quoted 40 lines · Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

Address the renaming. This is an example type of upstream that we should easily be able to automatically backport through inference. Logic:

for f in copy_list:
if f in git_delta_renamed:
adjust_copy_list(f)

We'd first have to build a series of types of changes from the delta between the last linux-next tag we tracked and the currenty evaluated one, the git_delta_renamed would contain a list of renames that happened between the two tags.

commit 5ad60d36993596f7b3b958500f9c66c5338cd855

Author: Alexander Aring <[email protected]>
Date:   Sat Oct 25 09:41:02 2014 +0200

ieee802154: move wpan-phy.h to cfg802154.h

The wpan-phy header contains the wpan_phy struct information. Later this header will be have similar function like cfg80211 header. The cfg80211 header contains the wiphy struct which is identically the wpan_phy struct inside 802.15.4 subsystem.

---
 copy-list | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
copy-list +0 -0
index d11b051..b7ac165 100644

copy-list include/linux/ieee802154.h · line 170

Quoted 5 lines
copy-list +1 -1
@@ -167,7 +167,7 @@ include/linux/ieee802154.h
 include/net/af_ieee802154.h
 include/linux/nl802154.h
 include/net/ieee802154_netdev.h
-include/net/wpan-phy.h
+include/net/cfg802154.h

I added cfg802154.h in an earlier patch, but I mossed removing wpan-phy.h .

Quoted 4 lines
copy-list +0 -0
 include/linux/spi/at86rf230.h
 include/linux/spi/cc2520.h
 net/6lowpan/
#3 lore raw

Re: [PATCH 1/5] backports: rename wpan-phy.h to cfg802154.h

Quoted 36 lines · Hauke Mehrtens
Quoted 35 lines · Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

Address the renaming. This is an example type of upstream that we should easily be able to automatically backport through inference. Logic:

for f in copy_list:
if f in git_delta_renamed:
adjust_copy_list(f)

We'd first have to build a series of types of changes from the delta between the last linux-next tag we tracked and the currenty evaluated one, the git_delta_renamed would contain a list of renames that happened between the two tags.

commit 5ad60d36993596f7b3b958500f9c66c5338cd855

Author: Alexander Aring <[email protected]>
Date:   Sat Oct 25 09:41:02 2014 +0200

ieee802154: move wpan-phy.h to cfg802154.h

The wpan-phy header contains the wpan_phy struct information. Later this header will be have similar function like cfg80211 header. The cfg80211 header contains the wiphy struct which is identically the wpan_phy struct inside 802.15.4 subsystem.

---
 copy-list | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 12 lines

copy-list include/linux/ieee802154.h · line 170

Quoted 10 lines
copy-list +1 -1
index d11b051..b7ac165 100644
@@ -167,7 +167,7 @@ include/linux/ieee802154.h
 include/net/af_ieee802154.h
 include/linux/nl802154.h
 include/net/ieee802154_netdev.h
-include/net/wpan-phy.h
+include/net/cfg802154.h

I added cfg802154.h in an earlier patch, but I mossed removing wpan-phy.h .

Thanks, failed to see that, adjusted:

Quoted 1 line

From f6b7140c9a1f0c724ad0eb462f66a7f5baadf009 Mon Sep 17 00:00:00 2001

From: "Luis R. Rodriguez" <[email protected]>
Date: Wed, 19 Nov 2014 11:28:14 -0800
Subject: [PATCH] backports: remove wpan-phy.h after rename to cfg802154.h

Address the renaming. cfg802154.h was already added but we forgot to remove wpan-phy.h. This is an example type of upstream that we should easily be able to automatically backport through inference. Logic:

for f in copy_list:
if f in git_delta_renamed:
adjust_copy_list(f)

We'd first have to build a series of types of changes from the delta between the last linux-next tag we tracked and the currenty evaluated one, the git_delta_renamed would contain a list of renames that happened between the two tags.

commit 5ad60d36993596f7b3b958500f9c66c5338cd855

Author: Alexander Aring <[email protected]>
Date:   Sat Oct 25 09:41:02 2014 +0200

ieee802154: move wpan-phy.h to cfg802154.h

The wpan-phy header contains the wpan_phy struct information. Later this header will be have similar function like cfg80211 header. The cfg80211 header contains the wiphy struct which is identically the wpan_phy struct inside 802.15.4 subsystem.

---
 copy-list | 1 -
 1 file changed, 1 deletion(-)
copy-list +0 -1
index d11b051..3eff5ab 100644
@@ -167,7 +167,6 @@ include/linux/ieee802154.h
 include/net/af_ieee802154.h
 include/linux/nl802154.h
 include/net/ieee802154_netdev.h
-include/net/wpan-phy.h
 include/linux/spi/at86rf230.h
 include/linux/spi/cc2520.h
 net/6lowpan/
Signature · 1 line
2.1.1
#4 lore raw

PATCH 2/5 backports: address splitting of v4l2-mediabus.h to two files

In reply to Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

The new file media-bus-format.h was derived from contents from v4l2-mediabus.h, this change might be a bit harder to infer exactly what to do but based on some contextual examination of the file, if content integrity has not changed it should be relatively easy to infer what to do with changes like this.

commit edcf58bc031e621f519c9dfce3c7e1ea6880c70a

Author: Boris BREZILLON <[email protected]>
Date:   Mon Nov 10 14:28:26 2014 -0300

[media] Move mediabus format definition to a more standard place

Define MEDIA_BUS_FMT macros (re-using the values defined in the v4l2_mbus_pixelcode enum) into a separate header file so that they can be used from the DRM/KMS subsystem without any reference to the V4L2 subsystem.

Then set V4L2_MBUS_FMT definitions to the MEDIA_BUS_FMT values using the V4L2_MBUS_FROM_MEDIA_BUS_FMT macro.

 include/uapi/linux/Kbuild             |   1 +
 include/uapi/linux/media-bus-format.h | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/uapi/linux/v4l2-mediabus.h    | 184 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------
 3 files changed, 206 insertions(+), 104 deletions(-)
---
 copy-list | 1 +
 1 file changed, 1 insertion(+)
copy-list +1 -0
index b7ac165..19017af 100644
@@ -145,6 +145,7 @@ include/uapi/linux/v4l2-common.h
 include/uapi/linux/v4l2-controls.h
 include/uapi/linux/v4l2-dv-timings.h
 include/uapi/linux/v4l2-mediabus.h
+include/uapi/linux/media-bus-format.h
 include/uapi/linux/v4l2-subdev.h
 include/uapi/linux/videodev2.h
 include/uapi/linux/vsp1.h
Signature · 1 line
2.1.1
#5 lore raw

PATCH 3/5 backports: bump I2C_SI4713 to v3.13

In reply to Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

This driver depends on gpio consumer.h, that depends on some built-in kernel functionality and while we can now backport built-in stuff we'd need to make that depend on BACKPORT_INTEGRATE and then figure out how to backport that functionality on integration.

This doesn't seem like a good candidate to test that with though. Let's wait for something more desirable.

---
 dependencies | 11 +++++++++++
 1 file changed, 11 insertions(+)
dependencies +11 -0
index 1ca9061..8e11497 100644
@@ -28,8 +28,19 @@ VIDEO_RENESAS_VSP1 3.4
 VIDEO_MEM2MEM_DEINTERLACE 3.3
 MEDIA_TUNER_E4000 3.4
 DVB_USB_RTL28XXU 3.4
+
 # missing linux/gpio/consumer.h
+# consumer.h cannot be backported currently, as functions rely
+# on in-kernel functionality (GPIO_DEVRES), we can now backport
+# in-kernel functionality but we'd need to make that depend on
+# integration only and figure out a way to easily split that.
+# This does not seem like a good test desirable test case to
+# start that work with.
 VIDEO_ADV7604 3.13
+I2C_SI4713 3.13
+USB_SI4713 3.13
+PLATFORM_SI4713 3.13
+
 # missing function clk_prepare_enable(), clk_disable_unprepare() and devm_regulator_bulk_get()
 VIDEO_MT9V032 3.3
 VIDEO_S5K6AA 3.3
Signature · 1 line
2.1.1
#6 lore raw

PATCH 4/5 backports: backport netdev_rss_key_fill()

In reply to Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

netdev_rss_key_fill() uses net_get_random_once() and since this depends on static keys and we've decided to only backport that only down to 3.5 as that is when static key stuff settled we only backport netdev_rss_key_fill() down to 3.5 as well. For details on the net_get_random_once() / static key stuff refer to backports commit 8cb8816d.

Backporting netdev_rss_key_fill requires us to throw in the netdev_rss_key within our own backports module. We don't backport the ability to query this *yet though*, but if we really wanted to we can provide an interface for that:

For *packaging* [0] we have no other option but to currently provide our own querying interface, that's silly though, in the future if we extend sysctl interfaces to allow dynamic extensions we could just peg what we need also within the backports module to allow seemless integration. With shiny new *kernel integration* support [1] though we can enable cherry picking the sysctl components, and apply it to the older kernel -- however this would pose a change in compartamentalized backporting strategy as currently used. It would seem a allowing dynamic extensions to an existing sysctl interface would be more efficient and would allow packaging to also take advantage of this effort.

[0] https://backports.wiki.kernel.org/index.php/Documentation/packaging
[1] https://backports.wiki.kernel.org/index.php/Documentation/integration

commit 960fb622f85180f36d3aff82af53e2be3db2f888

Author: Eric Dumazet <[email protected]>
Date:   Sun Nov 16 06:23:05 2014 -0800

net: provide a per host RSS key generic infrastructure

RSS (Receive Side Scaling) typically uses Toeplitz hash and a 40 or 52 bytes RSS key.

Some drivers use a constant (and well known key), some drivers use a random key per port, making bonding setups hard to tune. Well known keys increase attack surface, considering that number of queues is usually a power of two.

This patch provides infrastructure to help drivers doing the right thing.

netdev_rss_key_fill() should be used by drivers to initialize their RSS key, even if they provide ethtool -X support to let user redefine the key later.

A new /proc/sys/net/core/netdev_rss_key file can be used to get the host RSS key even for drivers not providing ethtool -x support, in case some applications want to precisely setup flows to match some RX queues.

Tested:

myhost:~# cat /proc/sys/net/core/netdev_rss_key 11:63:99:bb:79:fb:a5:a7:07:45:b2:20:bf:02:42:2d:08:1a:dd:19:2b:6b:23:ac:56:28:9d:70:c3:ac:e8:16:4b:b7:c1:10:53:a4:78:41:36:40:74:b6:15:ca:27:44:aa:b3:4d:72

myhost:~# ethtool -x eth0
RX flow hash indirection table for eth0 with 8 RX ring(s):
0: 0 1 2 3 4 5 6 7
RSS hash key:
11:63:99:bb:79:fb:a5:a7:07:45:b2:20:bf:02:42:2d:08:1a:dd:19:2b:6b:23:ac:56:28:9d:70:c3:ac:e8:16:4b:b7:c1:10:53:a4:78:41

mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py \
	/home/mcgrof/linux-next /home/mcgrof/build/backports-20141117

Copy original source files ...
Applying patches from patches to /home/mcgrof/build/backports-20141117
...
Modify Kconfig tree ...
Rewrite Makefiles and Kconfig files ...
Done!

real    1m28.499s
user    13m25.112s
sys     0m47.804s
mcgrof@drvbp1 ~/build/backports-20141117 $ time \
	/home/mcgrof/backports/devel/ckmake --allyesconfig
1   3.0.101             [  OK  ]
2   3.1.10              [  OK  ]
3   3.2.62              [  OK  ]
4   3.3.8               [  OK  ]
5   3.4.104             [  OK  ]
6   3.5.7               [  OK  ]
7   3.6.11              [  OK  ]
8   3.7.10              [  OK  ]
9   3.8.13              [  OK  ]
10  3.9.11              [  OK  ]
11  3.10.58             [  OK  ]
12  3.11.10             [  OK  ]
13  3.12.31             [  OK  ]
14  3.13.11             [  OK  ]
15  3.14.22             [  OK  ]
16  3.15.10             [  OK  ]
17  3.16.6              [  OK  ]
18  3.17.1              [  OK  ]
19  3.18-rc1            [  OK  ]
real    42m18.874s
user    1179m40.500s
sys     138m54.452s
---
 backport/backport-include/linux/netdevice.h | 25 +++++++++++++++++++++++++
 backport/compat/backport-3.19.c             | 15 ++++++++++++++-
 dependencies                                |  6 ++++++
 3 files changed, 45 insertions(+), 1 deletion(-)
backport/backport-include/linux/netdevice.h +25 -0
index b453280..0469fdd 100644
@@ -200,4 +200,29 @@ static inline void backport_unregister_netdevice_many(struct list_head *head)
 #define unregister_netdevice_many LINUX_BACKPORT(unregister_netdevice_many)
 #endif
 
+/*
+ * Complicated way of saying: We only backport netdev_rss_key stuff on kernels
+ * that either already have net_get_random_once() (>= 3.13) or where we've been
+ * brave enough to backport it due to static keys, refer to backports commit
+ * 8cb8816d for details on difficulty to backport that further down.
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)
+#define __BACKPORT_NETDEV_RSS_KEY_FILL 1
+#else
+#ifdef __BACKPORT_NET_GET_RANDOM_ONCE
+#define __BACKPORT_NETDEV_RSS_KEY_FILL 1
+#endif
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0) */
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) */
+
+#ifdef __BACKPORT_NETDEV_RSS_KEY_FILL
+/* RSS keys are 40 or 52 bytes long */
+#define NETDEV_RSS_KEY_LEN 52
+#define netdev_rss_key LINUX_BACKPORT(netdev_rss_key)
+extern u8 netdev_rss_key[NETDEV_RSS_KEY_LEN];
+#define netdev_rss_key_fill LINUX_BACKPORT(netdev_rss_key_fill)
+void netdev_rss_key_fill(void *buffer, size_t len);
+#endif /* __BACKPORT_NETDEV_RSS_KEY_FILL */
+
 #endif /* __BACKPORT_NETDEVICE_H */
backport/compat/backport-3.19.c +14 -1
index 18cba4d..fd13400 100644
@@ -11,7 +11,8 @@
 #include <linux/sched.h>
 #include <linux/kthread.h>
 #include <linux/export.h>
-
+#include <linux/net.h>
+#include <linux/netdevice.h>
 
 static inline bool is_kthread_should_stop(void)
 {
@@ -77,3 +78,15 @@ int woken_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key)
 	return default_wake_function(wait, mode, sync, key);
 }
 EXPORT_SYMBOL(woken_wake_function);
+
+#ifdef __BACKPORT_NETDEV_RSS_KEY_FILL
+u8 netdev_rss_key[NETDEV_RSS_KEY_LEN];
+
+void netdev_rss_key_fill(void *buffer, size_t len)
+{
+	BUG_ON(len > sizeof(netdev_rss_key));
+	net_get_random_once(netdev_rss_key, sizeof(netdev_rss_key));
+	memcpy(buffer, netdev_rss_key, len);
+}
+EXPORT_SYMBOL_GPL(netdev_rss_key_fill);
+#endif /* __BACKPORT_NETDEV_RSS_KEY_FILL */
dependencies +6 -0
index 8e11497..9f7166c 100644
@@ -130,3 +130,9 @@ IR_HIX5HD2 kconfig: CONFIG_MFD_SYSCON
 # tracing results in compile errors
 ATH10K_TRACING 3.4
 ATH_TRACEPOINTS 3.1
+
+# depends on netdev_rss_key_fill() which uses net_get_random_once()
+# and since net_get_random_once() depends on static keys we've decided
+# to backport that only down to 3.5. For full details refer to backports
+# commit 8cb8816d
+IGB 3.5
Signature · 1 line
2.1.1
#7 lore raw

PATCH 5/5 backports: refresh patches for next-20141117

In reply to Luis R. Rodriguez

From: "Luis R. Rodriguez" <[email protected]>

This required no manual changes.

mcgrof@drvbp1 ~/backports (git::master)$ time ./gentree.py \
	/home/mcgrof/linux-next /home/mcgrof/build/backports-20141117

Copy original source files ...
Applying patches from patches to /home/mcgrof/build/backports-20141117
...
Modify Kconfig tree ...
Rewrite Makefiles and Kconfig files ...
Done!

real    1m28.499s
user    13m25.112s
sys     0m47.804s
mcgrof@drvbp1 ~/build/backports-20141117 $ time \
	/home/mcgrof/backports/devel/ckmake --allyesconfig
1   3.0.101             [  OK  ]
2   3.1.10              [  OK  ]
3   3.2.62              [  OK  ]
4   3.3.8               [  OK  ]
5   3.4.104             [  OK  ]
6   3.5.7               [  OK  ]
7   3.6.11              [  OK  ]
8   3.7.10              [  OK  ]
9   3.8.13              [  OK  ]
10  3.9.11              [  OK  ]
11  3.10.58             [  OK  ]
12  3.11.10             [  OK  ]
13  3.12.31             [  OK  ]
14  3.13.11             [  OK  ]
15  3.14.22             [  OK  ]
16  3.15.10             [  OK  ]
17  3.16.6              [  OK  ]
18  3.17.1              [  OK  ]
19  3.18-rc1            [  OK  ]
real    42m18.874s
user    1179m40.500s
sys     138m54.452s
---
 .../network/0032-sriov_configure/igb_sriov_configure.patch        | 8 ++++----
 .../network/0033-ndo_vlan_rx_vid/igb_ndo_vlan_rx_vid.patch        | 8 ++++----
 .../0034-ndo_set_vf_spoofchk/igb_ndo_set_vf_spoofchk.patch        | 6 +++---
 .../network/0035-skb_no_fcs/igb_skb_no_fcs.patch                  | 2 +-
 .../collateral-evolutions/network/0043-ndo_set_vf_rate/igb.patch  | 8 ++++----
 .../network/0048-no_ndo_xmit_flush/igb.patch                      | 2 +-
 .../collateral-evolutions/network/0049-no-pfmemalloc/igb.patch    | 4 ++--
 7 files changed, 19 insertions(+), 19 deletions(-)
patches/collateral-evolutions/network/0032-sriov_configure/igb_sriov_configure.patch +4 -4
index cad85cf..6ece3a2 100644
@@ -20,7 +20,7 @@
  	.err_handler = &igb_err_handler
  };
  
-@@ -7524,6 +7528,7 @@ static int igb_sriov_reinit(struct pci_d
+@@ -7521,6 +7525,7 @@ static int igb_sriov_reinit(struct pci_d
  	return 0;
  }
  
@@ -28,7 +28,7 @@
  static int igb_pci_disable_sriov(struct pci_dev *dev)
  {
  	int err = igb_disable_sriov(dev);
-@@ -7533,6 +7538,7 @@ static int igb_pci_disable_sriov(struct
+@@ -7530,6 +7535,7 @@ static int igb_pci_disable_sriov(struct
  
  	return err;
  }
@@ -36,7 +36,7 @@
  
  static int igb_pci_enable_sriov(struct pci_dev *dev, int num_vfs)
  {
-@@ -7550,6 +7556,7 @@ out:
+@@ -7547,6 +7553,7 @@ out:
  }
  
  #endif
@@ -44,7 +44,7 @@
  static int igb_pci_sriov_configure(struct pci_dev *dev, int num_vfs)
  {
  #ifdef CONFIG_PCI_IOV
-@@ -7560,6 +7567,7 @@ static int igb_pci_sriov_configure(struc
+@@ -7557,6 +7564,7 @@ static int igb_pci_sriov_configure(struc
  #endif
  	return 0;
  }
patches/collateral-evolutions/network/0033-ndo_vlan_rx_vid/igb_ndo_vlan_rx_vid.patch +4 -4
index 886c9cb..3100a16 100644
@@ -17,7 +17,7 @@
  static void igb_restore_vlan(struct igb_adapter *);
  static void igb_rar_set_qsel(struct igb_adapter *, u8 *, u32 , u8);
  static void igb_ping_all_vfs(struct igb_adapter *);
-@@ -7192,8 +7200,14 @@ static void igb_vlan_mode(struct net_dev
+@@ -7189,8 +7197,14 @@ static void igb_vlan_mode(struct net_dev
  	igb_rlpml_set(adapter);
  }
  
@@ -32,7 +32,7 @@
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7207,11 +7221,19 @@ static int igb_vlan_rx_add_vid(struct ne
+@@ -7204,11 +7218,19 @@ static int igb_vlan_rx_add_vid(struct ne
  
  	set_bit(vid, adapter->active_vlans);
  
@@ -52,7 +52,7 @@
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7227,7 +7249,9 @@ static int igb_vlan_rx_kill_vid(struct n
+@@ -7224,7 +7246,9 @@ static int igb_vlan_rx_kill_vid(struct n
  
  	clear_bit(vid, adapter->active_vlans);
  
@@ -62,7 +62,7 @@
  }
  
  static void igb_restore_vlan(struct igb_adapter *adapter)
-@@ -7237,7 +7261,11 @@ static void igb_restore_vlan(struct igb_
+@@ -7234,7 +7258,11 @@ static void igb_restore_vlan(struct igb_
  	igb_vlan_mode(adapter->netdev, adapter->netdev->features);
  
  	for_each_set_bit(vid, adapter->active_vlans, VLAN_N_VID)
patches/collateral-evolutions/network/0034-ndo_set_vf_spoofchk/igb_ndo_set_vf_spoofchk.patch +3 -3
index e098d14..04cbfe6 100644
@@ -21,7 +21,7 @@
  	.ndo_get_vf_config	= igb_ndo_get_vf_config,
  #ifdef CONFIG_NET_POLL_CONTROLLER
  	.ndo_poll_controller	= igb_netpoll,
-@@ -7875,6 +7879,7 @@ static int igb_ndo_set_vf_bw(struct net_
+@@ -7872,6 +7876,7 @@ static int igb_ndo_set_vf_bw(struct net_
  	return 0;
  }
  
@@ -29,7 +29,7 @@
  static int igb_ndo_set_vf_spoofchk(struct net_device *netdev, int vf,
  				   bool setting)
  {
-@@ -7901,6 +7906,7 @@ static int igb_ndo_set_vf_spoofchk(struc
+@@ -7898,6 +7903,7 @@ static int igb_ndo_set_vf_spoofchk(struc
  	adapter->vf_data[vf].spoofchk_enabled = setting;
  	return 0;
  }
@@ -37,7 +37,7 @@
  
  static int igb_ndo_get_vf_config(struct net_device *netdev,
  				 int vf, struct ifla_vf_info *ivi)
-@@ -7914,7 +7920,9 @@ static int igb_ndo_get_vf_config(struct
+@@ -7911,7 +7917,9 @@ static int igb_ndo_get_vf_config(struct
  	ivi->min_tx_rate = 0;
  	ivi->vlan = adapter->vf_data[vf].pf_vlan;
  	ivi->qos = adapter->vf_data[vf].pf_qos;
patches/collateral-evolutions/network/0035-skb_no_fcs/igb_skb_no_fcs.patch +1 -1
index de77231..251dd80 100644
@@ -1,6 +1,6 @@
 --- a/drivers/net/ethernet/intel/igb/igb_main.c
 +++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -4800,9 +4800,10 @@ static u32 igb_tx_cmd_type(struct sk_buf
+@@ -4797,9 +4797,10 @@ static u32 igb_tx_cmd_type(struct sk_buf
  	cmd_type |= IGB_SET_FLAG(tx_flags, IGB_TX_FLAGS_TSTAMP,
  				 (E1000_ADVTXD_MAC_TSTAMP));
  
patches/collateral-evolutions/network/0043-ndo_set_vf_rate/igb.patch +4 -4
index be2ac2b..f6ed98e 100644
@@ -24,7 +24,7 @@
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
  	.ndo_set_vf_spoofchk	= igb_ndo_set_vf_spoofchk,
  #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0) */
-@@ -7857,8 +7865,12 @@ static void igb_check_vf_rate_limit(stru
+@@ -7854,8 +7862,12 @@ static void igb_check_vf_rate_limit(stru
  	}
  }
  
@@ -37,7 +37,7 @@
  {
  	struct igb_adapter *adapter = netdev_priv(netdev);
  	struct e1000_hw *hw = &adapter->hw;
-@@ -7867,6 +7879,7 @@ static int igb_ndo_set_vf_bw(struct net_
+@@ -7864,6 +7876,7 @@ static int igb_ndo_set_vf_bw(struct net_
  	if (hw->mac.type != e1000_82576)
  		return -EOPNOTSUPP;
  
@@ -45,7 +45,7 @@
  	if (min_tx_rate)
  		return -EINVAL;
  
-@@ -7880,7 +7893,17 @@ static int igb_ndo_set_vf_bw(struct net_
+@@ -7877,7 +7890,17 @@ static int igb_ndo_set_vf_bw(struct net_
  	adapter->vf_rate_link_speed = actual_link_speed;
  	adapter->vf_data[vf].tx_rate = (u16)max_tx_rate;
  	igb_set_vf_rate_limit(hw, vf, max_tx_rate, actual_link_speed);
@@ -63,7 +63,7 @@
  	return 0;
  }
  
-@@ -7921,8 +7944,12 @@ static int igb_ndo_get_vf_config(struct
+@@ -7918,8 +7941,12 @@ static int igb_ndo_get_vf_config(struct
  		return -EINVAL;
  	ivi->vf = vf;
  	memcpy(&ivi->mac, adapter->vf_data[vf].vf_mac_addresses, ETH_ALEN);
patches/collateral-evolutions/network/0048-no_ndo_xmit_flush/igb.patch +1 -1
index f3ed217..76b72ad 100644
@@ -1,6 +1,6 @@
 --- a/drivers/net/ethernet/intel/igb/igb_main.c
 +++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -4982,7 +4982,10 @@ static void igb_tx_map(struct igb_ring *
+@@ -4979,7 +4979,10 @@ static void igb_tx_map(struct igb_ring *
  	/* Make sure there is space in the ring for the next send. */
  	igb_maybe_stop_tx(tx_ring, DESC_NEEDED);
  
patches/collateral-evolutions/network/0049-no-pfmemalloc/igb.patch +2 -2
index 2f9f747..49a0462 100644
@@ -2,7 +2,7 @@ diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/in
 index a2d72a8..85d7005 100644
 --- a/drivers/net/ethernet/intel/igb/igb_main.c
 +++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -6569,8 +6569,10 @@ static bool igb_can_reuse_rx_page(struct
+@@ -6566,8 +6566,10 @@ static bool igb_can_reuse_rx_page(struct
  	if (unlikely(page_to_nid(page) != numa_node_id()))
  		return false;
  
@@ -13,7 +13,7 @@ index a2d72a8..85d7005 100644
  
  #if (PAGE_SIZE < 8192)
  	/* if we are only owner of page we can reuse it */
-@@ -6638,8 +6640,12 @@ static bool igb_add_rx_frag(struct igb_r
+@@ -6635,8 +6637,12 @@ static bool igb_add_rx_frag(struct igb_r
  		memcpy(__skb_put(skb, size), va, ALIGN(size, sizeof(long)));
  
  		/* we can reuse buffer as-is, just make sure it is local */
Signature · 1 line
2.1.1