Update to 4.9.11

Ignore/avoid a few ABI changes in net.
This commit is contained in:
Ben Hutchings 2017-02-18 21:54:07 +00:00
parent 7b50304bda
commit 4fe7cfed42
4 changed files with 67 additions and 0 deletions

2
debian/changelog vendored
View File

@ -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 <ben@decadent.org.uk> Sat, 18 Feb 2017 00:38:10 +0000

View File

@ -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:

View File

@ -0,0 +1,61 @@
From: Ben Hutchings <ben@decadent.org.uk>
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 = &eth_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 */

View File

@ -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