Bump ABI to 4

The mm fixes in 3.2.25 changed struct address_space_operations and
struct task_struct.

svn path=/dists/sid/linux/; revision=19305
This commit is contained in:
Ben Hutchings 2012-08-03 01:41:42 +00:00
parent 1d65a00c89
commit 28f28f994c
56 changed files with 2 additions and 433801 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1
debian/changelog vendored
View File

@ -41,6 +41,7 @@ linux (3.2.25-1) UNRELEASED; urgency=low
- Btrfs: call the ordered free operation without any locks held
[ Ben Hutchings ]
* Bump ABI to 4
* linux-image: Include package version in utsname version string
('uname -v' output) (Closes: #638878)
* linux-source: Drop support for version.$DISTRIBUTION

View File

@ -1,5 +1,5 @@
[abi]
abiname: 3
abiname: 4
ignore-changes:
module:drivers/net/wireless/ath/*

View File

@ -1,15 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: debugfs: Avoid ABI change for mount options
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -23,8 +23,10 @@
#include <linux/debugfs.h>
#include <linux/fsnotify.h>
#include <linux/string.h>
+#ifndef __GENKSYMS__
#include <linux/seq_file.h>
#include <linux/parser.h>
+#endif
#include <linux/magic.h>
#include <linux/slab.h>

View File

@ -1,22 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: driver core: Avoid ABI change for removal of __must_check
Surprisingly, __must_check contributes to the symbol version hash
despite making no real difference to the function's ABI.
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -510,8 +510,13 @@
struct dev_ext_attribute dev_attr_##_name = \
{ __ATTR(_name, _mode, device_show_ulong, device_store_ulong), &(_var) }
+#ifdef __GENKSYMS__
+extern int __must_check device_create_file(struct device *device,
+ const struct device_attribute *entry);
+#else
extern int device_create_file(struct device *device,
const struct device_attribute *entry);
+#endif
extern void device_remove_file(struct device *dev,
const struct device_attribute *attr);
extern int __must_check device_create_bin_file(struct device *dev,

View File

@ -1,36 +0,0 @@
From e858f73d794205cfda77ddfb4cbf86a1b5aeb72f Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Wed, 25 Jul 2012 05:00:02 +0100
Subject: [PATCH 1/4] hrtimer: Avoid ABI change in 3.2.24
struct hrtimer_cpu_base should not be allocated by modules. Move
the new member clock_was_set to the end and hide it from genksyms.
Revert the type change of active_bases.
---
include/linux/hrtimer.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index cc07d27..c2012e3 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -178,8 +178,7 @@ enum hrtimer_base_type {
*/
struct hrtimer_cpu_base {
raw_spinlock_t lock;
- unsigned int active_bases;
- unsigned int clock_was_set;
+ unsigned long active_bases;
#ifdef CONFIG_HIGH_RES_TIMERS
ktime_t expires_next;
int hres_active;
@@ -190,6 +189,9 @@ struct hrtimer_cpu_base {
ktime_t max_hang_time;
#endif
struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
+#ifndef __GENKSYMS__
+ unsigned int clock_was_set;
+#endif
};
static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)

View File

@ -1,85 +0,0 @@
From 331cf8308dcde22597583c4be4eabdc5d168c703 Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Wed, 25 Jul 2012 05:26:58 +0100
Subject: [PATCH 3/4] libsas: Avoid ABI change in 3.2.24
Revert commit 6ef1b512f4e6f936d89aa20be3d97a7ec7c290ac ('libsas: fix
taskfile corruption in sas_ata_qc_fill_rtf') and fix the bug in a
different way.
SATA command results must be converted from FIS to ata_taskfile
format. This is done in two stages via a temporary buffer in
struct sata_device, as the source and target addresses aren't
known at the same time (?).
The old code does conversion and then memcpy(), which is wrong
because the conversion only assigns some members and the rest
of the target structure should be left unchanged.
The upstream fix switches this to memcpy() and conversion, but
that changes the temporary buffer format and makes it larger
(the ABI change).
This fix changes the memcpy() to write only the target members
that would be written by the conversion function.
---
drivers/scsi/libsas/sas_ata.c | 15 +++++++++------
include/scsi/libsas.h | 2 +-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 4868fc9..c707410 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -112,12 +112,12 @@ static void sas_ata_task_done(struct sas_task *task)
if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD ||
((stat->stat == SAM_STAT_CHECK_CONDITION &&
dev->sata_dev.command_set == ATAPI_COMMAND_SET))) {
- memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE);
+ ata_tf_from_fis(resp->ending_fis, &dev->sata_dev.tf);
if (!link->sactive) {
- qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]);
+ qc->err_mask |= ac_err_mask(dev->sata_dev.tf.command);
} else {
- link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.fis[2]);
+ link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.tf.command);
if (unlikely(link->eh_info.err_mask))
qc->flags |= ATA_QCFLAG_FAILED;
}
@@ -138,8 +138,8 @@ static void sas_ata_task_done(struct sas_task *task)
qc->flags |= ATA_QCFLAG_FAILED;
}
- dev->sata_dev.fis[3] = 0x04; /* status err */
- dev->sata_dev.fis[2] = ATA_ERR;
+ dev->sata_dev.tf.feature = 0x04; /* status err */
+ dev->sata_dev.tf.command = ATA_ERR;
}
}
@@ -252,7 +252,10 @@ static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc)
{
struct domain_device *dev = qc->ap->private_data;
- ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf);
+ /* Copy only those fields that ata_tf_from_fis() sets */
+ memcpy(&qc->result_tf.hob_nsect, &dev->sata_dev.tf.hob_nsect,
+ sizeof(dev->sata_dev.tf) -
+ offsetof(struct ata_taskfile, hob_nsect));
return true;
}
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 1e100c6..4cd529d 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -172,7 +172,7 @@ struct sata_device {
struct ata_port *ap;
struct ata_host ata_host;
- u8 fis[ATA_RESP_FIS_SIZE];
+ struct ata_taskfile tf;
u32 sstatus;
u32 serror;
u32 scontrol;

View File

@ -1,23 +0,0 @@
From 222f965efd8d504e374758209dcc8f56d37f62fc Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Wed, 25 Jul 2012 05:00:55 +0100
Subject: [PATCH 2/4] net: Avoid ABI change in 3.2.24
Don't renumber skb_shared_info TX flags.
---
include/linux/skbuff.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 53dc7e7..a3615cc 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -214,7 +214,7 @@ enum {
SKBTX_IN_PROGRESS = 1 << 2,
/* device driver supports TX zero-copy buffers */
- SKBTX_DEV_ZEROCOPY = 1 << 3,
+ SKBTX_DEV_ZEROCOPY = 1 << 4,
};
/*

View File

@ -1,32 +0,0 @@
From 70c7bdf78972dd72ceffbf8b88c5d9fec22dae01 Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Wed, 25 Jul 2012 05:47:16 +0100
Subject: [PATCH 4/4] powerpc: cputime: Avoid ABI change in 3.2.24
Restore __cputime_msec_factor.
---
arch/powerpc/kernel/time.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index ec8affe..010b325 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -175,6 +175,8 @@ u64 __cputime_jiffies_factor;
EXPORT_SYMBOL(__cputime_jiffies_factor);
u64 __cputime_usec_factor;
EXPORT_SYMBOL(__cputime_usec_factor);
+u64 __cputime_msec_factor;
+EXPORT_SYMBOL(__cputime_msec_factor);
u64 __cputime_sec_factor;
EXPORT_SYMBOL(__cputime_sec_factor);
u64 __cputime_clockt_factor;
@@ -194,6 +196,8 @@ static void calc_cputime_factors(void)
__cputime_jiffies_factor = res.result_low;
div128_by_32(1000000, 0, tb_ticks_per_sec, &res);
__cputime_usec_factor = res.result_low;
+ div128_by_32(1000, 0, tb_ticks_per_sec, &res);
+ __cputime_msec_factor = res.result_low;
div128_by_32(1, 0, tb_ticks_per_sec, &res);
__cputime_sec_factor = res.result_low;
div128_by_32(USER_HZ, 0, tb_ticks_per_sec, &res);

11
debian/patches/series vendored
View File

@ -340,9 +340,6 @@ features/arm/ARM-7259-3-net-JIT-compiler-for-packet-filters.patch
features/arm/ARM-fix-Kconfig-warning-for-HAVE_BPF_JIT.patch
features/arm/net-drop-NET-dependency-from-HAVE_BPF_JIT.patch
# Until next ABI bump
debian/driver-core-avoid-ABI-change-for-removal-of-__must_check.patch
# nouveau update to support Fermi (NVC0+) acceleration
features/all/fermi-accel/drm-nouveau-ttm-always-do-buffer-moves-on-kernel-cha.patch
features/all/fermi-accel/drm-nouveau-remove-subchannel-names-from-places-wher.patch
@ -358,13 +355,5 @@ bugfix/all/net-e100-ucode-is-optional-in-some-cases.patch
bugfix/x86/drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
bugfix/all/cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
# Until next ABI bump
debian/hrtimer-Avoid-ABI-change-in-3.2.24.patch
debian/net-Avoid-ABI-change-in-3.2.24.patch
debian/libsas-Avoid-ABI-change-in-3.2.24.patch
debian/powerpc-cputime-Avoid-ABI-change-in-3.2.24.patch
features/all/debugfs-add-mode-uid-and-gid-options.patch
debian/debugfs-set-default-mode-to-700.patch
# Until next ABI bump
debian/debugfs-avoid-ABI-change-for-mount-options.patch