[linux] 01/02: Fix or ignore ABI changes between 3.2.68 and 3.2.71, as appropriate

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Mon Sep 21 21:25:55 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch wheezy
in repository linux.

commit cc7150d7810c5c052807c0cc0c6453d16f2444ae
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Mon Sep 21 13:39:48 2015 +0200

    Fix or ignore ABI changes between 3.2.68 and 3.2.71, as appropriate
---
 debian/config/defines                              |  1 +
 .../debian/bh-avoid-abi-change-in-3.2.71.patch     | 98 ++++++++++++++++++++++
 ...ta-ignore-spurious-phy-event-on-lpm-polic.patch | 83 ++++++++++++++++++
 .../debian/usb-avoid-abi-change-in-3.2.69.patch    | 21 +++++
 debian/patches/series                              |  3 +
 5 files changed, 206 insertions(+)

diff --git a/debian/config/defines b/debian/config/defines
index 58f9a47..e84fdca 100644
--- a/debian/config/defines
+++ b/debian/config/defines
@@ -75,6 +75,7 @@ ignore-changes:
  module:net/ipv4/netfilter/nf_nat
  module:net/netfilter/ipvs/*
  module:net/netfilter/nf_conntrac*
+ module:sound/pci/emu10k1/*
 
 [base]
 arches:
diff --git a/debian/patches/debian/bh-avoid-abi-change-in-3.2.71.patch b/debian/patches/debian/bh-avoid-abi-change-in-3.2.71.patch
new file mode 100644
index 0000000..9b35c6e
--- /dev/null
+++ b/debian/patches/debian/bh-avoid-abi-change-in-3.2.71.patch
@@ -0,0 +1,98 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 21 Sep 2015 13:38:09 +0200
+Subject: bh: Avoid ABI change in 3.2.71
+Forwarded: not-needed
+
+__bread() and __getblk() were changed into inline wrappers for the
+corresponding functions with the _gfp suffix.  As they were exported,
+we need to change them back to avoid an ABI break.
+
+---
+--- a/fs/buffer.c
++++ b/fs/buffer.c
+@@ -1370,6 +1370,13 @@ __find_get_block(struct block_device *bd
+ }
+ EXPORT_SYMBOL(__find_get_block);
+ 
++struct buffer_head *__getblk(struct block_device *bdev, sector_t block,
++			     unsigned size)
++{
++	return __getblk_gfp(bdev, block, size, __GFP_MOVABLE);
++}
++EXPORT_SYMBOL(__getblk);
++
+ /*
+  * __getblk_gfp() will locate (and, if necessary, create) the buffer_head
+  * which corresponds to the passed block_device, block and size. The
+@@ -1405,6 +1412,23 @@ void __breadahead(struct block_device *b
+ EXPORT_SYMBOL(__breadahead);
+ 
+ /**
++ *  __bread() - reads a specified block and returns the bh
++ *  @bdev: the block_device to read from
++ *  @block: number of block
++ *  @size: size (in bytes) to read
++ *
++ *  Reads a specified block, and returns buffer head that contains it.
++ *  The page cache is allocated from movable area so that it can be migrated.
++ *  It returns NULL if the block was unreadable.
++ */
++struct buffer_head *
++__bread(struct block_device *bdev, sector_t block, unsigned size)
++{
++	return __bread_gfp(bdev, block, size, __GFP_MOVABLE);
++}
++EXPORT_SYMBOL(__bread);
++
++/**
+  *  __bread_gfp() - reads a specified block and returns the bh
+  *  @bdev: the block_device to read from
+  *  @block: number of block
+--- a/include/linux/buffer_head.h
++++ b/include/linux/buffer_head.h
+@@ -166,11 +166,15 @@ void __wait_on_buffer(struct buffer_head
+ wait_queue_head_t *bh_waitq_head(struct buffer_head *bh);
+ struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block,
+ 			unsigned size);
++struct buffer_head *__getblk(struct block_device *bdev, sector_t block,
++			     unsigned size);
+ struct buffer_head *__getblk_gfp(struct block_device *bdev, sector_t block,
+ 				  unsigned size, gfp_t gfp);
+ void __brelse(struct buffer_head *);
+ void __bforget(struct buffer_head *);
+ void __breadahead(struct block_device *, sector_t block, unsigned int size);
++struct buffer_head *
++__bread(struct block_device *bdev, sector_t block, unsigned size);
+ struct buffer_head *__bread_gfp(struct block_device *,
+ 				sector_t block, unsigned size, gfp_t gfp);
+ void invalidate_bh_lrus(void);
+@@ -356,29 +360,6 @@ static inline struct buffer_head *getblk
+ 	return __getblk_gfp(bdev, block, size, 0);
+ }
+ 
+-static inline struct buffer_head *__getblk(struct block_device *bdev,
+-					   sector_t block,
+-					   unsigned size)
+-{
+-	return __getblk_gfp(bdev, block, size, __GFP_MOVABLE);
+-}
+-
+-/**
+- *  __bread() - reads a specified block and returns the bh
+- *  @bdev: the block_device to read from
+- *  @block: number of block
+- *  @size: size (in bytes) to read
+- *
+- *  Reads a specified block, and returns buffer head that contains it.
+- *  The page cache is allocated from movable area so that it can be migrated.
+- *  It returns NULL if the block was unreadable.
+- */
+-static inline struct buffer_head *
+-__bread(struct block_device *bdev, sector_t block, unsigned size)
+-{
+-	return __bread_gfp(bdev, block, size, __GFP_MOVABLE);
+-}
+-
+ extern int __set_page_dirty_buffers(struct page *page);
+ 
+ #else /* CONFIG_BLOCK */
diff --git a/debian/patches/debian/revert-libata-ignore-spurious-phy-event-on-lpm-polic.patch b/debian/patches/debian/revert-libata-ignore-spurious-phy-event-on-lpm-polic.patch
new file mode 100644
index 0000000..9d4aa06
--- /dev/null
+++ b/debian/patches/debian/revert-libata-ignore-spurious-phy-event-on-lpm-polic.patch
@@ -0,0 +1,83 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 15 Jun 2015 04:32:59 +0100
+Subject: [PATCH] Revert "libata: Ignore spurious PHY event on LPM policy
+ change"
+Forwarded: not-needed
+
+This reverts commit 09c5b4803a80a5451d950d6a539d2eb311dc0fb1, as
+it results in an unavoidable ABI change.
+---
+ drivers/ata/libata-core.c | 15 +--------------
+ drivers/ata/libata-eh.c   |  3 ---
+ include/linux/libata.h    |  9 ---------
+ 3 files changed, 1 insertion(+), 26 deletions(-)
+
+--- a/drivers/ata/libata-core.c
++++ b/drivers/ata/libata-core.c
+@@ -6651,21 +6651,8 @@ u32 ata_wait_register(struct ata_port *a
+  */
+ bool sata_lpm_ignore_phy_events(struct ata_link *link)
+ {
+-	unsigned long lpm_timeout = link->last_lpm_change +
+-				    msecs_to_jiffies(ATA_TMOUT_SPURIOUS_PHY);
+-
+ 	/* if LPM is enabled, PHYRDY doesn't mean anything */
+-	if (link->lpm_policy > ATA_LPM_MAX_POWER)
+-		return true;
+-
+-	/* ignore the first PHY event after the LPM policy changed
+-	 * as it is might be spurious
+-	 */
+-	if ((link->flags & ATA_LFLAG_CHANGED) &&
+-	    time_before(jiffies, lpm_timeout))
+-		return true;
+-
+-	return false;
++	return !!(link->lpm_policy > ATA_LPM_MAX_POWER);
+ }
+ EXPORT_SYMBOL_GPL(sata_lpm_ignore_phy_events);
+ 
+--- a/drivers/ata/libata-eh.c
++++ b/drivers/ata/libata-eh.c
+@@ -3423,9 +3423,6 @@ static int ata_eh_set_lpm(struct ata_lin
+ 		}
+ 	}
+ 
+-	link->last_lpm_change = jiffies;
+-	link->flags |= ATA_LFLAG_CHANGED;
+-
+ 	return 0;
+ 
+ fail:
+--- a/include/linux/libata.h
++++ b/include/linux/libata.h
+@@ -182,7 +182,6 @@ enum {
+ 	ATA_LFLAG_DISABLED	= (1 << 6), /* link is disabled */
+ 	ATA_LFLAG_SW_ACTIVITY	= (1 << 7), /* keep activity stats */
+ 	ATA_LFLAG_NO_LPM	= (1 << 8), /* disable LPM on this link */
+-	ATA_LFLAG_CHANGED	= (1 << 10), /* LPM state changed on this link */
+ 
+ 	/* struct ata_port flags */
+ 	ATA_FLAG_SLAVE_POSS	= (1 << 0), /* host supports slave dev */
+@@ -288,12 +287,6 @@ enum {
+ 	 */
+ 	ATA_TMOUT_PMP_SRST_WAIT	= 5000,
+ 
+-	/* When the LPM policy is set to ATA_LPM_MAX_POWER, there might
+-	 * be a spurious PHY event, so ignore the first PHY event that
+-	 * occurs within 10s after the policy change.
+-	 */
+-	ATA_TMOUT_SPURIOUS_PHY	= 10000,
+-
+ 	/* ATA bus states */
+ 	BUS_UNKNOWN		= 0,
+ 	BUS_DMA			= 1,
+@@ -739,8 +732,6 @@ struct ata_link {
+ 	struct ata_eh_context	eh_context;
+ 
+ 	struct ata_device	device[ATA_MAX_DEVICES];
+-
+-	unsigned long		last_lpm_change; /* when last LPM change happened */
+ };
+ #define ATA_LINK_CLEAR_BEGIN		offsetof(struct ata_link, active_tag)
+ #define ATA_LINK_CLEAR_END		offsetof(struct ata_link, device[0])
diff --git a/debian/patches/debian/usb-avoid-abi-change-in-3.2.69.patch b/debian/patches/debian/usb-avoid-abi-change-in-3.2.69.patch
new file mode 100644
index 0000000..9c53778
--- /dev/null
+++ b/debian/patches/debian/usb-avoid-abi-change-in-3.2.69.patch
@@ -0,0 +1,21 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 06 Apr 2015 17:51:50 +0100
+Subject: USB: Avoid ABI change in 3.2.69
+Forwarded: not-needed
+
+Hide the added bitfield usb_hcd::cant_recv_wakeups from genksyms.
+---
+--- a/include/linux/usb/hcd.h
++++ b/include/linux/usb/hcd.h
+@@ -128,8 +128,11 @@ struct usb_hcd {
+ 	unsigned		wireless:1;	/* Wireless USB HCD */
+ 	unsigned		authorized_default:1;
+ 	unsigned		has_tt:1;	/* Integrated TT in root hub */
++#ifndef __GENKSYMS__
+ 	unsigned		cant_recv_wakeups:1;
+ 			/* wakeup requests from downstream aren't received */
++	/* 24 bits spare */
++#endif
+ 
+ 	int			irq;		/* irq allocated */
+ 	void __iomem		*regs;		/* device memory/io */
diff --git a/debian/patches/series b/debian/patches/series
index b125b28..bf60bbb 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1158,3 +1158,6 @@ debian/revert-acpica-utilities-split-io-address-types-from-.patch
 bugfix/all/ipv6-addrconf-validate-new-MTU-before-applying-it.patch
 bugfix/all/virtio-net-drop-netif_f_fraglist.patch
 bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch
+debian/revert-libata-ignore-spurious-phy-event-on-lpm-polic.patch
+debian/usb-avoid-abi-change-in-3.2.69.patch
+debian/bh-avoid-abi-change-in-3.2.71.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list