From d117cd8e4858c31c12a5fd20c33b768c424af086 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sat, 19 Jul 2014 18:55:27 +0000 Subject: [PATCH] Bump ABI to 2 svn path=/dists/sid/linux/; revision=21569 --- debian/changelog | 2 +- debian/config/defines | 25 +- ...oid-abi-change-for-cve-2014-4652-fix.patch | 33 --- .../blkcg-avoid-abi-change-in-3.14.12.patch | 33 --- .../dm-avoid-abi-change-in-3.14.4.patch | 39 --- .../dma-avoid-abi-change-in-3.14.6.patch | 25 -- ...-platform-avoid-abi-change-in-3.14.6.patch | 19 -- .../irq-avoid-abi-change-in-3.14.10.patch | 32 --- .../libata-avoid-abi-change-in-3.14.4.patch | 32 --- ...net-revert-lockdep-changes-in-3.14.5.patch | 261 ------------------ ...netfilter-avoid-abi-change-in-3.14.5.patch | 47 ---- .../ptrace-avoid-abi-change-in-3.14.10.patch | 20 -- .../target-avoid-abi-change-in-3.14.5.patch | 44 --- ...-syscall-avoid-abi-change-in-3.14.11.patch | 18 -- ...s-avoid-abi-change-for-cve-2014-4014.patch | 22 -- .../writeback-fix-abi-change-in-3.14.10.patch | 29 -- .../all/rt/random-make-it-work-on-rt.patch | 7 +- debian/patches/series | 14 - 18 files changed, 5 insertions(+), 697 deletions(-) delete mode 100644 debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch delete mode 100644 debian/patches/debian/blkcg-avoid-abi-change-in-3.14.12.patch delete mode 100644 debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch delete mode 100644 debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch delete mode 100644 debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch delete mode 100644 debian/patches/debian/irq-avoid-abi-change-in-3.14.10.patch delete mode 100644 debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch delete mode 100644 debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch delete mode 100644 debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch delete mode 100644 debian/patches/debian/ptrace-avoid-abi-change-in-3.14.10.patch delete mode 100644 debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch delete mode 100644 debian/patches/debian/trace-syscall-avoid-abi-change-in-3.14.11.patch delete mode 100644 debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch delete mode 100644 debian/patches/debian/writeback-fix-abi-change-in-3.14.10.patch diff --git a/debian/changelog b/debian/changelog index 0181bba25..e5d4b468f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,8 +24,8 @@ linux (3.14.12-2) UNRELEASED; urgency=medium #755223). [ Ben Hutchings ] - * writeback: Fix ABI change in 3.14.10 (Closes: #754902) * net/l2tp: don't fall back on UDP [get|set]sockopt (CVE-2014-4943) + * Bump ABI to 2 (Closes: #754902) -- Ian Campbell Sat, 12 Jul 2014 21:12:17 +0100 diff --git a/debian/config/defines b/debian/config/defines index 554e5a9f1..b838dc9db 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -1,29 +1,6 @@ [abi] -abiname: 1 +abiname: 2 ignore-changes: -# Removed, apparently only needed by rdma_cm - ib_update_cm_av -# Private to the matroxfb modules (why are they even separate modules?!) - DAC1064_global_* - g450_mnp2f - matrox_* - matroxfb_* -# Not used OOT (at least not in open-vm-tools) - vsock_core_init -# Cannot be used OOT - nf_ct_extend_register -# Apparently not used OOT - __ps2_* - __serio_* - i8042_* - ps2_* - serio_* -# Private to the team modules - module:drivers/net/team/team -# Apparently not used OOT - sock_diag_put_filterinfo -# Can't build target modules OOT - module:drivers/target/iscsi/iscsi_target_mod [base] arches: diff --git a/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch b/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch deleted file mode 100644 index 8543612ac..000000000 --- a/debian/patches/debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Ben Hutchings -Date: Sun, 29 Jun 2014 02:05:57 +0100 -Subject: ALSA: Avoid ABI change for CVE-2014-4652 fix -Forwarded: not-needed - -Move the new member snd_card::user_ctl_lock to the end of the structure -and hide it from genksyms. struct snd_card is always allocated by -snd_card_create() in sound/core/init.c and user_ctl_lock is used in -sound/core/control.c, and these are part of the same module so they -are sure to be consistent. - ---- a/include/sound/core.h -+++ b/include/sound/core.h -@@ -121,8 +121,6 @@ struct snd_card { - int user_ctl_count; /* count of all user controls */ - struct list_head controls; /* all controls for this card */ - struct list_head ctl_files; /* active control files */ -- struct mutex user_ctl_lock; /* protects user controls against -- concurrent access */ - - struct snd_info_entry *proc_root; /* root for soundcard specific files */ - struct snd_info_entry *proc_id; /* the card id */ -@@ -149,6 +147,10 @@ struct snd_card { - struct snd_mixer_oss *mixer_oss; - int mixer_oss_change_count; - #endif -+#ifndef __GENKSYMS__ -+ struct mutex user_ctl_lock; /* protects user controls against -+ concurrent access */ -+#endif - }; - - #ifdef CONFIG_PM diff --git a/debian/patches/debian/blkcg-avoid-abi-change-in-3.14.12.patch b/debian/patches/debian/blkcg-avoid-abi-change-in-3.14.12.patch deleted file mode 100644 index 050c77fbc..000000000 --- a/debian/patches/debian/blkcg-avoid-abi-change-in-3.14.12.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Ben Hutchings -Date: Fri, 11 Jul 2014 17:41:42 +0100 -Subject: blkcg: Avoid ABI change in 3.14.12 - -The type of blkcg_gq::refcnt was changed from int to atomic_t, -and reference counting now requires atomic operations. None -of the in-tree users are modular and this structure isn't exposed -OOT, so we can hide this change. - ---- a/block/blk-cgroup.h -+++ b/block/blk-cgroup.h -@@ -18,7 +18,9 @@ - #include - #include - #include -+#ifndef __GENKSYMS__ - #include -+#endif - - /* Max limits for throttle policy */ - #define THROTL_IOPS_MAX UINT_MAX -@@ -105,7 +107,11 @@ struct blkcg_gq { - struct request_list rl; - - /* reference count */ -+#ifndef __GENKSYMS__ - atomic_t refcnt; -+#else -+ int refcnt; -+#endif - - /* is this blkg online? protected by both blkcg and q locks */ - bool online; diff --git a/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch b/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch deleted file mode 100644 index c58f94e60..000000000 --- a/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Ben Hutchings -Date: Tue, 13 May 2014 18:48:29 +0100 -Subject: dm: Avoid ABI change in 3.14.4 -Forwarded: not-needed - -The dm_bm_flush_and_unlock() function was replaced by dm_bm_flush(). -As both callers were changed to call dm_bm_unlock() and then -dm_bm_flush(), restore dm_bm_flush_and_unlock() as a trivial -function that does just that. - ---- a/drivers/md/persistent-data/dm-block-manager.c -+++ b/drivers/md/persistent-data/dm-block-manager.c -@@ -604,6 +604,15 @@ int dm_bm_flush(struct dm_block_manager - } - EXPORT_SYMBOL_GPL(dm_bm_flush); - -+int dm_bm_flush_and_unlock(struct dm_block_manager *bm, -+ struct dm_block *superblock) -+{ -+ dm_bm_unlock(superblock); -+ -+ return dm_bm_flush(bm); -+} -+EXPORT_SYMBOL_GPL(dm_bm_flush_and_unlock); -+ - void dm_bm_prefetch(struct dm_block_manager *bm, dm_block_t b) - { - dm_bufio_prefetch(bm->bufio, b, 1); ---- a/drivers/md/persistent-data/dm-block-manager.h -+++ b/drivers/md/persistent-data/dm-block-manager.h -@@ -106,6 +106,8 @@ int dm_bm_unlock(struct dm_block *b); - * This method always blocks. - */ - int dm_bm_flush(struct dm_block_manager *bm); -+int dm_bm_flush_and_unlock(struct dm_block_manager *bm, -+ struct dm_block *superblock); - - /* - * Request data is prefetched into the cache. diff --git a/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch b/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch deleted file mode 100644 index 8b4e64e42..000000000 --- a/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Ben Hutchings -Date: Sun, 15 Jun 2014 21:44:43 +0100 -Subject: dmaengine: Avoid ABI change in 3.14.6 -Forwarded: not-needed - -dmaengine_unmap_data::map_cnt was added to the beginning of the -structure. Move it after bidi_cnt, where there was previously at -least one byte of padding, and hide it from genksyms. - ---- a/include/linux/dmaengine.h -+++ b/include/linux/dmaengine.h -@@ -433,10 +433,12 @@ typedef bool (*dma_filter_fn)(struct dma - typedef void (*dma_async_tx_callback)(void *dma_async_param); - - struct dmaengine_unmap_data { -- u8 map_cnt; - u8 to_cnt; - u8 from_cnt; - u8 bidi_cnt; -+#ifndef __GENKSYMS__ -+ u8 map_cnt; -+#endif - struct device *dev; - struct kref kref; - size_t len; diff --git a/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch b/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch deleted file mode 100644 index 83183b4f4..000000000 --- a/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Ben Hutchings -Date: Sun, 15 Jun 2014 21:41:43 +0100 -Subject: drivers/base/platform: Avoid ABI change in 3.14.6 -Forwarded: not-needed - -Hide the new #include from genksyms. - ---- a/drivers/base/platform.c -+++ b/drivers/base/platform.c -@@ -13,7 +13,9 @@ - #include - #include - #include -+#ifndef __GENKSYMS__ - #include -+#endif - #include - #include - #include diff --git a/debian/patches/debian/irq-avoid-abi-change-in-3.14.10.patch b/debian/patches/debian/irq-avoid-abi-change-in-3.14.10.patch deleted file mode 100644 index 4d60e6faa..000000000 --- a/debian/patches/debian/irq-avoid-abi-change-in-3.14.10.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Ben Hutchings -Date: Mon, 07 Jul 2014 01:09:53 +0100 -Subject: irq: Avoid ABI change in 3.14.10 -Forwarded: not-needed - -Move the new fields to the end of struct irq_desc and hide them from -genksyms. Although struct irq_desc is normally allocated as part of a -static array, access is abstracted through the irq_to_desc() function -so modules don't depend on the size of the structure. - ---- a/include/linux/irqdesc.h -+++ b/include/linux/irqdesc.h -@@ -54,8 +54,6 @@ struct irq_desc { - unsigned int irq_count; /* For detecting broken IRQs */ - unsigned long last_unhandled; /* Aging timer for unhandled count */ - unsigned int irqs_unhandled; -- atomic_t threads_handled; -- int threads_handled_last; - raw_spinlock_t lock; - struct cpumask *percpu_enabled; - #ifdef CONFIG_SMP -@@ -74,6 +72,10 @@ struct irq_desc { - int parent_irq; - struct module *owner; - const char *name; -+#ifndef __GENKSYMS__ -+ atomic_t threads_handled; -+ int threads_handled_last; -+#endif - } ____cacheline_internodealigned_in_smp; - - #ifndef CONFIG_SPARSE_IRQ diff --git a/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch b/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch deleted file mode 100644 index 35043d0e8..000000000 --- a/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Ben Hutchings -Date: Tue, 13 May 2014 18:39:19 +0100 -Subject: libata: Avoid ABI change in 3.14.4 -Forwarded: not-needed - -Commit 8a4aeec8d2d6 ("libata/ahci: accommodate tag ordered -controllers") added the ata_port::last_tag field. As this structure -is always allocated in libata (by ata_port_alloc()) and the field is -only used by libata, we can move it to the end and hide it from -genksyms. - ---- a/include/linux/libata.h -+++ b/include/linux/libata.h -@@ -822,7 +822,6 @@ struct ata_port { - unsigned long qc_allocated; - unsigned int qc_active; - int nr_active_links; /* #links with active qcs */ -- unsigned int last_tag; /* track next tag hw expects */ - - struct ata_link link; /* host default link */ - struct ata_link *slave_link; /* see ata_slave_link_init() */ -@@ -863,6 +862,10 @@ struct ata_port { - #endif - /* owned by EH */ - u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned; -+ -+#ifndef __GENKSYMS__ -+ unsigned int last_tag; /* track next tag hw expects */ -+#endif - }; - - /* The following initializer overrides a method to NULL whether one of diff --git a/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch b/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch deleted file mode 100644 index eb94c9e43..000000000 --- a/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch +++ /dev/null @@ -1,261 +0,0 @@ -From: Ben Hutchings -Date: Sun, 01 Jun 2014 20:33:54 +0100 -Subject: net: Revert lockdep changes in 3.14.5 -Forwarded: not-needed - -These changes fixed false lockep warnings, but result in an ABI -change. As lockdep is not enabled in our binary packages, they -don't fix any problem either. - -diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c -index 9dde3ea..1831fb7 100644 ---- a/drivers/net/macvlan.c -+++ b/drivers/net/macvlan.c -@@ -518,11 +518,6 @@ static struct lock_class_key macvlan_netdev_addr_lock_key; - #define MACVLAN_STATE_MASK \ - ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) - --static int macvlan_get_nest_level(struct net_device *dev) --{ -- return ((struct macvlan_dev *)netdev_priv(dev))->nest_level; --} -- - static void macvlan_set_lockdep_class_one(struct net_device *dev, - struct netdev_queue *txq, - void *_unused) -@@ -533,9 +528,8 @@ static void macvlan_set_lockdep_class_one(struct net_device *dev, - - static void macvlan_set_lockdep_class(struct net_device *dev) - { -- lockdep_set_class_and_subclass(&dev->addr_list_lock, -- &macvlan_netdev_addr_lock_key, -- macvlan_get_nest_level(dev)); -+ lockdep_set_class(&dev->addr_list_lock, -+ &macvlan_netdev_addr_lock_key); - netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL); - } - -@@ -737,7 +731,6 @@ static const struct net_device_ops macvlan_netdev_ops = { - .ndo_fdb_add = macvlan_fdb_add, - .ndo_fdb_del = macvlan_fdb_del, - .ndo_fdb_dump = ndo_dflt_fdb_dump, -- .ndo_get_lock_subclass = macvlan_get_nest_level, - }; - - void macvlan_common_setup(struct net_device *dev) -@@ -866,7 +859,6 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev, - vlan->dev = dev; - vlan->port = port; - vlan->set_features = MACVLAN_FEATURES; -- vlan->nest_level = dev_get_nest_level(lowerdev, netif_is_macvlan) + 1; - - vlan->mode = MACVLAN_MODE_VEPA; - if (data && data[IFLA_MACVLAN_MODE]) -diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h -index a9a53b1..7c8b20b 100644 ---- a/include/linux/if_macvlan.h -+++ b/include/linux/if_macvlan.h -@@ -56,7 +56,6 @@ struct macvlan_dev { - int numqueues; - netdev_features_t tap_features; - int minor; -- int nest_level; - }; - - static inline void macvlan_count_rx(const struct macvlan_dev *vlan, -diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h -index 72ba6f5..bbedfb5 100644 ---- a/include/linux/if_vlan.h -+++ b/include/linux/if_vlan.h -@@ -73,7 +73,7 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) - /* found in socket.c */ - extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); - --static inline bool is_vlan_dev(struct net_device *dev) -+static inline int is_vlan_dev(struct net_device *dev) - { - return dev->priv_flags & IFF_802_1Q_VLAN; - } -@@ -158,7 +158,6 @@ struct vlan_dev_priv { - #ifdef CONFIG_NET_POLL_CONTROLLER - struct netpoll *netpoll; - #endif -- unsigned int nest_level; - }; - - static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) -diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 911718f..daafd95 100644 ---- a/include/linux/netdevice.h -+++ b/include/linux/netdevice.h -@@ -1145,7 +1145,6 @@ struct net_device_ops { - netdev_tx_t (*ndo_dfwd_start_xmit) (struct sk_buff *skb, - struct net_device *dev, - void *priv); -- int (*ndo_get_lock_subclass)(struct net_device *dev); - }; - - /* -@@ -2862,12 +2861,7 @@ static inline void netif_addr_lock(struct net_device *dev) - - static inline void netif_addr_lock_nested(struct net_device *dev) - { -- int subclass = SINGLE_DEPTH_NESTING; -- -- if (dev->netdev_ops->ndo_get_lock_subclass) -- subclass = dev->netdev_ops->ndo_get_lock_subclass(dev); -- -- spin_lock_nested(&dev->addr_list_lock, subclass); -+ spin_lock_nested(&dev->addr_list_lock, SINGLE_DEPTH_NESTING); - } - - static inline void netif_addr_lock_bh(struct net_device *dev) -@@ -2994,14 +2988,6 @@ void *netdev_lower_get_next_private_rcu(struct net_device *dev, - priv; \ - priv = netdev_lower_get_next_private_rcu(dev, &(iter))) - --void *netdev_lower_get_next(struct net_device *dev, -- struct list_head **iter); --#define netdev_for_each_lower_dev(dev, ldev, iter) \ -- for (iter = &(dev)->adj_list.lower, \ -- ldev = netdev_lower_get_next(dev, &(iter)); \ -- ldev; \ -- ldev = netdev_lower_get_next(dev, &(iter))) -- - void *netdev_adjacent_get_private(struct list_head *adj_list); - void *netdev_lower_get_first_private_rcu(struct net_device *dev); - struct net_device *netdev_master_upper_dev_get(struct net_device *dev); -@@ -3017,8 +3003,6 @@ void netdev_upper_dev_unlink(struct net_device *dev, - void netdev_adjacent_rename_links(struct net_device *dev, char *oldname); - void *netdev_lower_dev_get_private(struct net_device *dev, - struct net_device *lower_dev); --int dev_get_nest_level(struct net_device *dev, -- bool (*type_check)(struct net_device *dev)); - int skb_checksum_help(struct sk_buff *skb); - struct sk_buff *__skb_gso_segment(struct sk_buff *skb, - netdev_features_t features, bool tx_path); -diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c -index 44ebd5c..175273f 100644 ---- a/net/8021q/vlan.c -+++ b/net/8021q/vlan.c -@@ -169,7 +169,6 @@ int register_vlan_dev(struct net_device *dev) - if (err < 0) - goto out_uninit_mvrp; - -- vlan->nest_level = dev_get_nest_level(real_dev, is_vlan_dev) + 1; - err = register_netdevice(dev); - if (err < 0) - goto out_uninit_mvrp; -diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c -index cc0d218..27bfe2f 100644 ---- a/net/8021q/vlan_dev.c -+++ b/net/8021q/vlan_dev.c -@@ -524,11 +524,6 @@ static void vlan_dev_set_lockdep_class(struct net_device *dev, int subclass) - netdev_for_each_tx_queue(dev, vlan_dev_set_lockdep_one, &subclass); - } - --static int vlan_dev_get_lock_subclass(struct net_device *dev) --{ -- return vlan_dev_priv(dev)->nest_level; --} -- - static const struct header_ops vlan_header_ops = { - .create = vlan_dev_hard_header, - .rebuild = vlan_dev_rebuild_header, -@@ -564,7 +559,7 @@ static const struct net_device_ops vlan_netdev_ops; - static int vlan_dev_init(struct net_device *dev) - { - struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; -- int i; -+ int subclass = 0, i; - - netif_carrier_off(dev); - -@@ -613,7 +608,10 @@ static int vlan_dev_init(struct net_device *dev) - - SET_NETDEV_DEVTYPE(dev, &vlan_type); - -- vlan_dev_set_lockdep_class(dev, vlan_dev_get_lock_subclass(dev)); -+ if (is_vlan_dev(real_dev)) -+ subclass = 1; -+ -+ vlan_dev_set_lockdep_class(dev, subclass); - - vlan_dev_priv(dev)->vlan_pcpu_stats = alloc_percpu(struct vlan_pcpu_stats); - if (!vlan_dev_priv(dev)->vlan_pcpu_stats) -@@ -793,7 +791,6 @@ static const struct net_device_ops vlan_netdev_ops = { - .ndo_netpoll_cleanup = vlan_dev_netpoll_cleanup, - #endif - .ndo_fix_features = vlan_dev_fix_features, -- .ndo_get_lock_subclass = vlan_dev_get_lock_subclass, - }; - - void vlan_setup(struct net_device *dev) -diff --git a/net/core/dev.c b/net/core/dev.c -index 7c22974..6088927 100644 ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -4605,32 +4605,6 @@ void *netdev_lower_get_next_private_rcu(struct net_device *dev, - EXPORT_SYMBOL(netdev_lower_get_next_private_rcu); - - /** -- * netdev_lower_get_next - Get the next device from the lower neighbour -- * list -- * @dev: device -- * @iter: list_head ** of the current position -- * -- * Gets the next netdev_adjacent from the dev's lower neighbour -- * list, starting from iter position. The caller must hold RTNL lock or -- * its own locking that guarantees that the neighbour lower -- * list will remain unchainged. -- */ --void *netdev_lower_get_next(struct net_device *dev, struct list_head **iter) --{ -- struct netdev_adjacent *lower; -- -- lower = list_entry((*iter)->next, struct netdev_adjacent, list); -- -- if (&lower->list == &dev->adj_list.lower) -- return NULL; -- -- *iter = &lower->list; -- -- return lower->dev; --} --EXPORT_SYMBOL(netdev_lower_get_next); -- --/** - * netdev_lower_get_first_private_rcu - Get the first ->private from the - * lower neighbour list, RCU - * variant -@@ -5080,30 +5054,6 @@ void *netdev_lower_dev_get_private(struct net_device *dev, - } - EXPORT_SYMBOL(netdev_lower_dev_get_private); - -- --int dev_get_nest_level(struct net_device *dev, -- bool (*type_check)(struct net_device *dev)) --{ -- struct net_device *lower = NULL; -- struct list_head *iter; -- int max_nest = -1; -- int nest; -- -- ASSERT_RTNL(); -- -- netdev_for_each_lower_dev(dev, lower, iter) { -- nest = dev_get_nest_level(lower, type_check); -- if (max_nest < nest) -- max_nest = nest; -- } -- -- if (type_check(dev)) -- max_nest++; -- -- return max_nest; --} --EXPORT_SYMBOL(dev_get_nest_level); -- - static void dev_change_rx_flags(struct net_device *dev, int flags) - { - const struct net_device_ops *ops = dev->netdev_ops; diff --git a/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch b/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch deleted file mode 100644 index 7ee340d59..000000000 --- a/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Ben Hutchings -Date: Sun, 01 Jun 2014 23:29:17 +0100 -Subject: netfilter: Avoid ABI change in 3.14.5 -Forwarded: not-needed - -The types of fields in struct nf_ct_ext were changed by commit -223b02d923ec ("netfilter: nf_conntrack: reserve two bytes for -nf_ct_ext->len") as u8 is not large enough to store the offsets -that may be needed now. - -This ABI change should only affect the conntrack extension modules, -which must be in-tree as they have centrally assigned numbers. -However the structure definition is visible to all modules using -conntrack at all. Hide the ABI change from genksyms and use a macro -to rename the extension registration function so that it is still not -possible to mismatch conntrack core and extension modules. - ---- a/include/net/netfilter/nf_conntrack_extend.h -+++ b/include/net/netfilter/nf_conntrack_extend.h -@@ -47,8 +47,19 @@ enum nf_ct_ext_id { - /* Extensions: optional stuff which isn't permanently in struct. */ - struct nf_ct_ext { - struct rcu_head rcu; -+#ifdef __GENKSYMS__ -+ /* Layout expected by modules calling nf_ct_extend_register() -+ * (which has been removed) -+ */ -+ u8 offset[NF_CT_EXT_NUM]; -+ u8 len; -+#else -+ /* Layout expected by modules calling nf_ct_extend_register_16() -+ * (all newly built modules, thanks to macro definition below) -+ */ - u16 offset[NF_CT_EXT_NUM]; - u16 len; -+#endif - char data[0]; - }; - -@@ -118,6 +129,7 @@ struct nf_ct_ext_type { - u8 alloc_size; - }; - -+#define nf_ct_extend_register nf_ct_extend_register_16 - int nf_ct_extend_register(struct nf_ct_ext_type *type); - void nf_ct_extend_unregister(struct nf_ct_ext_type *type); - #endif /* _NF_CONNTRACK_EXTEND_H */ diff --git a/debian/patches/debian/ptrace-avoid-abi-change-in-3.14.10.patch b/debian/patches/debian/ptrace-avoid-abi-change-in-3.14.10.patch deleted file mode 100644 index 6a36a0b42..000000000 --- a/debian/patches/debian/ptrace-avoid-abi-change-in-3.14.10.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Ben Hutchings -Date: Mon, 07 Jul 2014 09:52:12 +0100 -Subject: ptrace: Avoid ABI change in 3.14.10 -Forwarded: not-needed - -Hide a new #include from genksyms, which changed the symbol hashes for -most of networking. - ---- a/include/linux/ptrace.h -+++ b/include/linux/ptrace.h -@@ -5,7 +5,9 @@ - #include /* For struct task_struct. */ - #include /* for IS_ERR_VALUE */ - #include /* For BUG_ON. */ -+#ifndef __GENKSYMS__ - #include /* For task_active_pid_ns. */ -+#endif - #include - - /* diff --git a/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch b/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch deleted file mode 100644 index f5713330e..000000000 --- a/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Ben Hutchings -Date: Sun, 01 Jun 2014 20:47:46 +0100 -Subject: target: Avoid ABI change in 3.14.5 -Forwarded: not-needed - -Commit e63ed0d7a980 ("scsi: fix our current target reap infrastructure") -removed one field (ew) and changed the type of another (reap_ref). - -Put back 'ew' and hide the type change to 'reap_ref', which remains -the same size and is only used within the SCSI core. - ---- a/drivers/scsi/scsi_scan.c -+++ b/drivers/scsi/scsi_scan.c -@@ -433,6 +433,8 @@ static struct scsi_target *scsi_alloc_ta - } - dev = &starget->dev; - device_initialize(dev); -+ /* bwh: assert binary compatibility */ -+ BUILD_BUG_ON(sizeof(starget->reap_ref) != sizeof(unsigned int)); - kref_init(&starget->reap_ref); - dev->parent = get_device(parent); - dev_set_name(dev, "target%d:%d:%d", shost->host_no, channel, id); ---- a/include/scsi/scsi_device.h -+++ b/include/scsi/scsi_device.h -@@ -257,7 +257,11 @@ struct scsi_target { - struct list_head siblings; - struct list_head devices; - struct device dev; -+#ifdef __GENKSYMS__ -+ unsigned int reap_ref; -+#else - struct kref reap_ref; /* last put renders target invisible */ -+#endif - unsigned int channel; - unsigned int id; /* target id ... replace - * scsi_device.id eventually */ -@@ -284,6 +288,7 @@ struct scsi_target { - #define SCSI_DEFAULT_TARGET_BLOCKED 3 - - char scsi_level; -+ struct execute_work ew; /* bwh: unused, for binary compatibility */ - enum scsi_target_state state; - void *hostdata; /* available to low-level driver */ - unsigned long starget_data[0]; /* for the transport */ diff --git a/debian/patches/debian/trace-syscall-avoid-abi-change-in-3.14.11.patch b/debian/patches/debian/trace-syscall-avoid-abi-change-in-3.14.11.patch deleted file mode 100644 index cf156dd9e..000000000 --- a/debian/patches/debian/trace-syscall-avoid-abi-change-in-3.14.11.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Ben Hutchings -Date: Fri, 11 Jul 2014 09:07:00 +0100 -Subject: trace/syscall: Avoid ABI change in 3.14.11 - -Hide the added #include from genksyms. - ---- a/include/trace/syscall.h -+++ b/include/trace/syscall.h -@@ -4,7 +4,9 @@ - #include - #include - #include -+#ifndef __GENKSYMS__ - #include -+#endif - - #include - diff --git a/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch b/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch deleted file mode 100644 index 8f638ec8e..000000000 --- a/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Ben Hutchings -Date: Sun, 15 Jun 2014 23:59:03 +0100 -Subject: vfs: Avoid ABI change for CVE-2014-4014 -Forwarded: not-needed - -inode_capable() was renamed for good reasons, but we should keep -providing a function with that name. The only modular in-tree caller, -xfs, wants the new behaviour of capable_wrt_inode_uidgid(), so make -inode_capable() call that. - ---- a/kernel/capability.c -+++ b/kernel/capability.c -@@ -449,3 +449,9 @@ bool capable_wrt_inode_uidgid(const stru - kgid_has_mapping(ns, inode->i_gid); - } - EXPORT_SYMBOL(capable_wrt_inode_uidgid); -+ -+bool inode_capable(const struct inode *inode, int cap) -+{ -+ return capable_wrt_inode_uidgid(inode, cap); -+} -+EXPORT_SYMBOL(inode_capable); diff --git a/debian/patches/debian/writeback-fix-abi-change-in-3.14.10.patch b/debian/patches/debian/writeback-fix-abi-change-in-3.14.10.patch deleted file mode 100644 index 705e454fa..000000000 --- a/debian/patches/debian/writeback-fix-abi-change-in-3.14.10.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Ben Hutchings -Date: Wed, 16 Jul 2014 20:50:04 +0100 -Subject: writeback: Fix ABI change in 3.14.10 -Bug-Debian: https://bugs.debian.org/754902 -Forwarded: not-needed - -Commit 1c8349a17137 ("ext4: fix data integrity sync in ordered mode") -renamed test_set_page_writeback() to __test_set_page_writeback() and -added a function-macro under the old name as a wrapper. -test_set_page_writeback() was an exported function that is used by -some OOT modules including openafs. To keep old modules working, we -need to provide a real function as well. - ---- a/mm/page-writeback.c -+++ b/mm/page-writeback.c -@@ -2439,6 +2439,13 @@ int __test_set_page_writeback(struct pag - } - EXPORT_SYMBOL(__test_set_page_writeback); - -+#undef test_set_page_writeback -+int test_set_page_writeback(struct page *page) -+{ -+ return __test_set_page_writeback(page, false); -+} -+EXPORT_SYMBOL(test_set_page_writeback); -+ - /* - * Return true if any of the pages in the mapping are marked with the - * passed tag. diff --git a/debian/patches/features/all/rt/random-make-it-work-on-rt.patch b/debian/patches/features/all/rt/random-make-it-work-on-rt.patch index 950dfc7ae..49a10917c 100644 --- a/debian/patches/features/all/rt/random-make-it-work-on-rt.patch +++ b/debian/patches/features/all/rt/random-make-it-work-on-rt.patch @@ -11,7 +11,6 @@ entropy. Signed-off-by: Thomas Gleixner Cc: stable-rt@vger.kernel.org [bwh: - - Adjust context to apply on top of Debian ABI-maintaining patches - Restore interrupt randomness dropped in 3.14.10-rt6] --- drivers/char/random.c | 11 +++++++---- @@ -61,10 +60,10 @@ Cc: stable-rt@vger.kernel.org * back-to-back timer interrupts, then skip giving credit for --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h -@@ -54,6 +54,7 @@ struct irq_desc { - unsigned int irq_count; /* For detecting broken IRQs */ - unsigned long last_unhandled; /* Aging timer for unhandled count */ +@@ -56,6 +56,7 @@ struct irq_desc { unsigned int irqs_unhandled; + atomic_t threads_handled; + int threads_handled_last; + u64 random_ip; raw_spinlock_t lock; struct cpumask *percpu_enabled; diff --git a/debian/patches/series b/debian/patches/series index 873b81ea9..3637e1b4b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -82,20 +82,6 @@ features/arm/ARM-dt-sun4i-Add-A10-SPI-controller-nodes.patch features/arm/PHY-sunxi-Add-driver-for-sunxi-usb-phy.patch features/arm/ARM-sun4i-dt-Add-bindings-for-USB-clocks.patch features/arm/ARM-sun4i-dt-Add-USB-host-bindings.patch -debian/libata-avoid-abi-change-in-3.14.4.patch -debian/dm-avoid-abi-change-in-3.14.4.patch -debian/net-revert-lockdep-changes-in-3.14.5.patch -debian/target-avoid-abi-change-in-3.14.5.patch -debian/netfilter-avoid-abi-change-in-3.14.5.patch bugfix/mips/MIPS-Fix-branch-emulation-of-branch-likely-instructi.patch -debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch -debian/dma-avoid-abi-change-in-3.14.6.patch -debian/vfs-avoid-abi-change-for-cve-2014-4014.patch -debian/alsa-avoid-abi-change-for-cve-2014-4652-fix.patch bugfix/all/shmem-fix-faulting-into-a-hole-while-it-s-punched.patch -debian/irq-avoid-abi-change-in-3.14.10.patch -debian/ptrace-avoid-abi-change-in-3.14.10.patch -debian/trace-syscall-avoid-abi-change-in-3.14.11.patch -debian/blkcg-avoid-abi-change-in-3.14.12.patch -debian/writeback-fix-abi-change-in-3.14.10.patch bugfix/all/net-l2tp-don-t-fall-back-on-UDP-get-set-sockopt.patch