Bump ABI to 2

This commit is contained in:
Bastian Blank 2018-08-13 11:50:40 +02:00
parent f813b6ebf5
commit 2fcc01b384
34 changed files with 5 additions and 448660 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

5
debian/changelog vendored
View File

@ -586,7 +586,10 @@ linux (4.17.14-1) UNRELEASED; urgency=medium
* mtd: powernv_flash: set of_node in mtd's dev (Closes: #904380)
* block: really disable runtime-pm for blk-mq (Closes: #904441)
-- Romain Perier <romain.perier@gmail.com> Wed, 25 Jul 2018 14:05:34 +0200
[ Bastian Blank ]
* Bump ABI to 2
-- Ben Hutchings <ben@decadent.org.uk> Sun, 05 Aug 2018 19:37:24 +0800
linux (4.17.8-1) unstable; urgency=medium

View File

@ -1,5 +1,5 @@
[abi]
abiname: 1
abiname: 2
ignore-changes:
__cpuhp_*
__xive_vm_h_*

View File

@ -1,63 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Thu, 12 Jul 2018 01:02:13 +0100
Subject: dax: Avoid ABI change in 4.17.6
Forwarded: not-needed
The return type and first parameter type for bdev_dax_supported() and
__bdev_dax_supported() were changed by commits ba23cba9b3bd "fs: allow
per-device dax status checking for filesystems" and 80660f20252d "dax:
change bdev_dax_supported() to support boolean returns".
Avoid an ABI break by renaming the new version of
__bdev_dax_supported() and reintroducing the old version as a wrapper
for it. Add a #define so that the old version is hidden from the API,
i.e. newly built modules must use the new API.
---
--- a/drivers/dax/super.c
+++ b/drivers/dax/super.c
@@ -72,6 +72,8 @@ struct dax_device *fs_dax_get_by_bdev(st
EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
#endif
+#undef __bdev_dax_supported
+
/**
* __bdev_dax_supported() - Check if the device supports dax for filesystem
* @bdev: block device to check
@@ -82,7 +84,7 @@ EXPORT_SYMBOL_GPL(fs_dax_get_by_bdev);
*
* Return: true if supported, false if unsupported
*/
-bool __bdev_dax_supported(struct block_device *bdev, int blocksize)
+bool __bdev_dax_supported_new(struct block_device *bdev, int blocksize)
{
struct dax_device *dax_dev;
struct request_queue *q;
@@ -152,6 +154,13 @@ bool __bdev_dax_supported(struct block_d
return true;
}
+EXPORT_SYMBOL_GPL(__bdev_dax_supported_new);
+
+int __bdev_dax_supported(struct super_block *sb, int blocksize)
+{
+ return __bdev_dax_supported_new(sb->s_bdev, blocksize)
+ ? 0 : -EOPNOTSUPP;
+}
EXPORT_SYMBOL_GPL(__bdev_dax_supported);
#endif
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@ -64,7 +64,9 @@ static inline bool dax_write_cache_enabl
struct writeback_control;
int bdev_dax_pgoff(struct block_device *, sector_t, size_t, pgoff_t *pgoff);
#if IS_ENABLED(CONFIG_FS_DAX)
-bool __bdev_dax_supported(struct block_device *bdev, int blocksize);
+int __bdev_dax_supported(struct super_block *sb, int blocksize);
+bool __bdev_dax_supported_new(struct block_device *bdev, int blocksize);
+#define __bdev_dax_supported __bdev_dax_supported_new
static inline bool bdev_dax_supported(struct block_device *bdev, int blocksize)
{
return __bdev_dax_supported(bdev, blocksize);

View File

@ -1,80 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Thu, 12 Jul 2018 00:39:38 +0100
Subject: HID: Avoid ABI change in 4.17.6
Forwarded: not-needed
Commit 8f732850df1b "HID: core: allow concurrent registration of
drivers" introduced atomic bit-operations on hid_device::status, and
changed its type from unsigned int to unsigned long as required for
those operations.
Revert the type change and use cmpxchg() for the bit-operations,
since it supports unsigned int.
---
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1929,6 +1929,34 @@ static int hid_bus_match(struct device *
return hid_match_device(hdev, hdrv) != NULL;
}
+static void clear_status_flag(unsigned int flag, unsigned int *status)
+{
+ unsigned int expect, old;
+
+ expect = READ_ONCE(*status);
+ for (;;) {
+ old = cmpxchg(status, expect, expect & ~flag);
+ if (old == expect)
+ break;
+ expect = old;
+ }
+}
+
+static bool test_and_set_status_flag(unsigned int flag, unsigned int *status)
+{
+ unsigned int expect, old;
+
+ expect = READ_ONCE(*status);
+ for (;;) {
+ old = cmpxchg(status, expect, expect | flag);
+ if (old == expect)
+ break;
+ expect = old;
+ }
+
+ return old & flag;
+}
+
static int hid_device_probe(struct device *dev)
{
struct hid_driver *hdrv = to_hid_driver(dev->driver);
@@ -1942,7 +1970,7 @@ static int hid_device_probe(struct devic
}
hdev->io_started = false;
- clear_bit(ffs(HID_STAT_REPROBED), &hdev->status);
+ clear_status_flag(HID_STAT_REPROBED, &hdev->status);
if (!hdev->driver) {
id = hid_match_device(hdev, hdrv);
@@ -2208,7 +2236,7 @@ static int __hid_bus_reprobe_drivers(str
if (hdev->driver == hdrv &&
!hdrv->match(hdev, hid_ignore_special_drivers) &&
- !test_and_set_bit(ffs(HID_STAT_REPROBED), &hdev->status))
+ !test_and_set_status_flag(HID_STAT_REPROBED, &hdev->status))
return device_reprobe(dev);
return 0;
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -569,7 +569,7 @@ struct hid_device { /* device repo
bool battery_avoid_query;
#endif
- unsigned long status; /* see STAT flags above */
+ unsigned int status; /* see STAT flags above */
unsigned claimed; /* Claimed by hidinput, hiddev? */
unsigned quirks; /* Various quirks the device can pull on us */
bool io_started; /* If IO has started */

View File

@ -1,24 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Date: Sun, 15 Jul 2018 23:44:02 +0100
Subject: init: Avoid ABI change for build salt
Forwarded: not-needed
<linux/build-salt.h> indirectly includes <linux/elf.h>, which
apparently adds some type definitions that change the symbol
version for init_uts_ns.
Hide this change from genksyms.
---
--- a/init/version.c
+++ b/init/version.c
@@ -7,7 +7,9 @@
*/
#include <generated/compile.h>
+#ifndef __GENKSYMS__
#include <linux/build-salt.h>
+#endif
#include <linux/export.h>
#include <linux/uts.h>
#include <linux/utsname.h>

View File

@ -160,6 +160,3 @@ bugfix/all/usbip-fix-misuse-of-strncpy.patch
debian/wireless-disable-regulatory.db-direct-loading.patch
# ABI maintenance
debian/hid-avoid-abi-change-in-4.17.6.patch
debian/dax-avoid-abi-change-in-4.17.6.patch
debian/init-avoid-abi-change-for-build-salt.patch