From 4fe7cfed428df0bcf7a7f9da0368ee05ed66a87c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sat, 18 Feb 2017 21:54:07 +0000 Subject: [PATCH] Update to 4.9.11 Ignore/avoid a few ABI changes in net. --- debian/changelog | 2 + debian/config/defines | 3 + ...-avoid-abi-change-for-min_header_len.patch | 61 +++++++++++++++++++ debian/patches/series | 1 + 4 files changed, 67 insertions(+) create mode 100644 debian/patches/debian/net-avoid-abi-change-for-min_header_len.patch diff --git a/debian/changelog b/debian/changelog index ddee1f75b..a909be6e7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -38,6 +38,8 @@ linux (4.9.11-1) UNRELEASED; urgency=medium * [armel] dts: kirkwood: Fix SATA pinmux-ing for TS419 (Closes: #855017) * [armhf] Enable DRM_OMAP_PANEL_TPO_TD028TTEC1, PWM_OMAP_DMTIMER as modules (Closes: #855472) + * net: Ignore ABI changes to can_rx_register(), ip6_xmit() + * net: Avoid ABI change for min_header_len -- Ben Hutchings Sat, 18 Feb 2017 00:38:10 +0000 diff --git a/debian/config/defines b/debian/config/defines index 75e88b500..427b5a143 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -11,6 +11,9 @@ ignore-changes: # btree library is only selected by few drivers so not useful OOT btree_* visitor* +# Exported for related protocols only + can_rx_register + ip6_xmit [base] arches: diff --git a/debian/patches/debian/net-avoid-abi-change-for-min_header_len.patch b/debian/patches/debian/net-avoid-abi-change-for-min_header_len.patch new file mode 100644 index 000000000..dba368365 --- /dev/null +++ b/debian/patches/debian/net-avoid-abi-change-for-min_header_len.patch @@ -0,0 +1,61 @@ +From: Ben Hutchings +Date: Sat, 18 Feb 2017 21:22:41 +0000 +Subject: net: Avoid ABI change for min_header_len +Forwarded: not-needed + +Adding net_device::min_header_len is a massive ABI break that we don't +want right now. Instead, check for the specific device types and +minimum length in dev_validate_header(). + +--- +--- a/drivers/net/loopback.c ++++ b/drivers/net/loopback.c +@@ -164,7 +164,6 @@ static void loopback_setup(struct net_de + { + dev->mtu = 64 * 1024; + dev->hard_header_len = ETH_HLEN; /* 14 */ +- dev->min_header_len = ETH_HLEN; /* 14 */ + dev->addr_len = ETH_ALEN; /* 6 */ + dev->type = ARPHRD_LOOPBACK; /* 0x0001*/ + dev->flags = IFF_LOOPBACK; +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -1508,7 +1508,6 @@ enum netdev_priv_flags { + * @mtu: Interface MTU value + * @type: Interface hardware type + * @hard_header_len: Maximum hardware header length. +- * @min_header_len: Minimum hardware header length + * + * @needed_headroom: Extra headroom the hardware may need, but not in all + * cases can this be guaranteed +@@ -1729,7 +1728,6 @@ struct net_device { + unsigned int mtu; + unsigned short type; + unsigned short hard_header_len; +- unsigned short min_header_len; + + unsigned short needed_headroom; + unsigned short needed_tailroom; +@@ -2785,7 +2783,11 @@ static inline bool dev_validate_header(c + { + if (likely(len >= dev->hard_header_len)) + return true; +- if (len < dev->min_header_len) ++ if ((dev->type == 1 /*ARPHRD_ETHER*/ || ++ dev->type == 772 /*ARPHRD_LOOPBACK*/ || ++ dev->type == 801 /*ARPHRD_IEEE80211*/ || ++ dev->type == 803 /*ARPHRD_IEEE80211_RADIOTAP*/) && ++ len < 14 /*ETH_HLEN*/) + return false; + + if (capable(CAP_SYS_RAWIO)) { +--- a/net/ethernet/eth.c ++++ b/net/ethernet/eth.c +@@ -356,7 +356,6 @@ void ether_setup(struct net_device *dev) + dev->header_ops = ð_header_ops; + dev->type = ARPHRD_ETHER; + dev->hard_header_len = ETH_HLEN; +- dev->min_header_len = ETH_HLEN; + dev->mtu = ETH_DATA_LEN; + dev->addr_len = ETH_ALEN; + dev->tx_queue_len = 1000; /* Ethernet wants good queues */ diff --git a/debian/patches/series b/debian/patches/series index 6f3c454a1..848611101 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -120,6 +120,7 @@ bugfix/powerpc/powerpc-fix-missing-crcs-add-yet-more-asm-prototypes.patch bugfix/all/module-disable-matching-missing-version-crc.patch # ABI maintenance +debian/net-avoid-abi-change-for-min_header_len.patch # Tools bug fixes bugfix/all/usbip-document-tcp-wrappers.patch