* Fix FSID of rootfs being 0
For st_dev in struct stat, the value 0 is an error. Make sure rootfs has value 1. This fixes the coreutils cp -ax issue (although that code has already been improved in coreutils, too) and somewhat fixes the switch_root problem in util-linux. It is still possible that rootfs gets an FSID >1 in future versions, so util-linux still needs to be fixed. This is unrelated to the mount id issue in /proc/*/mountinfo - the mount id may still be zero. * Revert a patch that always enables autosuspend on intel bluetoothh xhci still sucks and breaks this. I am reverting this commit for reasons that are in no way selfish.
This commit is contained in:
		
							parent
							
								
									1dc3c46ebf
								
							
						
					
					
						commit
						d068bb28c8
					
				@ -1,7 +1,7 @@
 | 
			
		||||
From 5d77ba2d26110c678b40fd723866a17d4036de12 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Lucas De Marchi <lucas.demarchi@intel.com>
 | 
			
		||||
Date: Tue, 18 Feb 2014 02:19:26 -0300
 | 
			
		||||
Subject: [PATCH 1/4] Bluetooth: allocate static minor for vhci
 | 
			
		||||
Subject: [PATCH 1/6] Bluetooth: allocate static minor for vhci
 | 
			
		||||
 | 
			
		||||
Commit bfacbb9 (Bluetooth: Use devname:vhci module alias for virtual HCI
 | 
			
		||||
driver) added the module alias to hci_vhci module so it's possible to
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
From 9bc5b710f5957763d6944f38143b627d127c15ff Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Tom Gundersen <teg@jklm.no>
 | 
			
		||||
Date: Mon, 3 Feb 2014 11:14:13 +1030
 | 
			
		||||
Subject: [PATCH 2/4] module: allow multiple calls to MODULE_DEVICE_TABLE() per
 | 
			
		||||
Subject: [PATCH 2/6] module: allow multiple calls to MODULE_DEVICE_TABLE() per
 | 
			
		||||
 module
 | 
			
		||||
 | 
			
		||||
Commit 78551277e4df5: "Input: i8042 - add PNP modaliases" had a bug, where the
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
From 06d2e746733a83469944481cb7f4fb1c7134a8ce Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Rusty Russell <rusty@rustcorp.com.au>
 | 
			
		||||
Date: Mon, 3 Feb 2014 11:15:13 +1030
 | 
			
		||||
Subject: [PATCH 3/4] module: remove MODULE_GENERIC_TABLE
 | 
			
		||||
Subject: [PATCH 3/6] module: remove MODULE_GENERIC_TABLE
 | 
			
		||||
 | 
			
		||||
MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the
 | 
			
		||||
work directly.  This also removes a wart introduced in the last patch,
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
From 268984331a319f47179d6f0b62aa0e312fe4497d Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
 | 
			
		||||
Date: Tue, 1 Apr 2014 01:15:34 +0200
 | 
			
		||||
Subject: [PATCH 4/4] Revert "syscalls.h: use gcc alias instead of assembler
 | 
			
		||||
Subject: [PATCH 4/6] Revert "syscalls.h: use gcc alias instead of assembler
 | 
			
		||||
 aliases for syscalls"
 | 
			
		||||
 | 
			
		||||
This reverts commit 83460ec8dcac14142e7860a01fa59c267ac4657c.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										44
									
								
								0005-fs-Don-t-return-0-from-get_anon_bdev.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								0005-fs-Don-t-return-0-from-get_anon_bdev.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
From 0de4ffcad031c1d0b8422ebcceb9caa80995a73e Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
 | 
			
		||||
Date: Thu, 3 Apr 2014 21:55:37 +0200
 | 
			
		||||
Subject: [PATCH 5/6] fs: Don't return 0 from get_anon_bdev
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Commit 9e30cc9595303b27b48 removed an internal mount. This
 | 
			
		||||
has the side-effect that rootfs now has FSID 0. Many
 | 
			
		||||
userspace utilities assume that st_dev in struct stat
 | 
			
		||||
is never 0, so this change breaks a number of tools in
 | 
			
		||||
early userspace.
 | 
			
		||||
 | 
			
		||||
Since we don't know how many userspace programs are affected,
 | 
			
		||||
make sure that FSID is at least 1.
 | 
			
		||||
 | 
			
		||||
References: http://article.gmane.org/gmane.linux.kernel/1666905
 | 
			
		||||
References: http://permalink.gmane.org/gmane.linux.utilities.util-linux-ng/8557
 | 
			
		||||
Cc: 3.14 <stable@vger.kernel.org>
 | 
			
		||||
Signed-off-by: Thomas Bächler <thomas@archlinux.org>
 | 
			
		||||
---
 | 
			
		||||
 fs/super.c | 5 ++++-
 | 
			
		||||
 1 file changed, 4 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/fs/super.c b/fs/super.c
 | 
			
		||||
index 80d5cf2..7624267 100644
 | 
			
		||||
--- a/fs/super.c
 | 
			
		||||
+++ b/fs/super.c
 | 
			
		||||
@@ -802,7 +802,10 @@ void emergency_remount(void)
 | 
			
		||||
 
 | 
			
		||||
 static DEFINE_IDA(unnamed_dev_ida);
 | 
			
		||||
 static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */
 | 
			
		||||
-static int unnamed_dev_start = 0; /* don't bother trying below it */
 | 
			
		||||
+/* Many userspace utilities consider an FSID of 0 invalid.
 | 
			
		||||
+ * Always return at least 1 from get_anon_bdev.
 | 
			
		||||
+ */
 | 
			
		||||
+static int unnamed_dev_start = 1;
 | 
			
		||||
 
 | 
			
		||||
 int get_anon_bdev(dev_t *p)
 | 
			
		||||
 {
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,33 @@
 | 
			
		||||
From d02e0fc02f3cfa078e301698f0475adcdf6f72ab Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
 | 
			
		||||
Date: Thu, 3 Apr 2014 23:59:49 +0200
 | 
			
		||||
Subject: [PATCH 6/6] Revert "Bluetooth: Enable autosuspend for Intel Bluetooth
 | 
			
		||||
 device"
 | 
			
		||||
 | 
			
		||||
This reverts commit d2bee8fb6e18f6116aada39851918473761f7ab1.
 | 
			
		||||
 | 
			
		||||
USB autosuspend still breaks on some xhci controllers, so disable
 | 
			
		||||
it by default as long as no solution is found.
 | 
			
		||||
---
 | 
			
		||||
 drivers/bluetooth/btusb.c | 4 +---
 | 
			
		||||
 1 file changed, 1 insertion(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
 | 
			
		||||
index baeaaed..6d6e09e 100644
 | 
			
		||||
--- a/drivers/bluetooth/btusb.c
 | 
			
		||||
+++ b/drivers/bluetooth/btusb.c
 | 
			
		||||
@@ -1478,10 +1478,8 @@ static int btusb_probe(struct usb_interface *intf,
 | 
			
		||||
 	if (id->driver_info & BTUSB_BCM92035)
 | 
			
		||||
 		hdev->setup = btusb_setup_bcm92035;
 | 
			
		||||
 
 | 
			
		||||
-	if (id->driver_info & BTUSB_INTEL) {
 | 
			
		||||
-		usb_enable_autosuspend(data->udev);
 | 
			
		||||
+	if (id->driver_info & BTUSB_INTEL)
 | 
			
		||||
 		hdev->setup = btusb_setup_intel;
 | 
			
		||||
-	}
 | 
			
		||||
 
 | 
			
		||||
 	/* Interface numbers are hardcoded in the specification */
 | 
			
		||||
 	data->isoc = usb_ifnum_to_if(data->udev, 1);
 | 
			
		||||
-- 
 | 
			
		||||
1.9.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								PKGBUILD
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								PKGBUILD
									
									
									
									
									
								
							@ -5,7 +5,7 @@ pkgbase=linux               # Build stock -ARCH kernel
 | 
			
		||||
#pkgbase=linux-custom       # Build kernel with a different name
 | 
			
		||||
_srcname=linux-3.14
 | 
			
		||||
pkgver=3.14
 | 
			
		||||
pkgrel=2
 | 
			
		||||
pkgrel=3
 | 
			
		||||
arch=('i686' 'x86_64')
 | 
			
		||||
url="http://www.kernel.org/"
 | 
			
		||||
license=('GPL2')
 | 
			
		||||
@ -22,16 +22,20 @@ source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
 | 
			
		||||
        '0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
 | 
			
		||||
        '0003-module-remove-MODULE_GENERIC_TABLE.patch'
 | 
			
		||||
        '0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch'
 | 
			
		||||
        '0005-fs-Don-t-return-0-from-get_anon_bdev.patch'
 | 
			
		||||
        '0006-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
 | 
			
		||||
        )
 | 
			
		||||
sha256sums=('61558aa490855f42b6340d1a1596be47454909629327c49a5e4e10268065dffa'
 | 
			
		||||
            '91b05561c96e09c8c3a4ea05fdab0745f578c4bb879feae25f552306bbe6522a'
 | 
			
		||||
            '00da25459826be1dced644c2215dfe2a6da53168d92aea79467c490aec4cbcae'
 | 
			
		||||
            'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
 | 
			
		||||
            'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
 | 
			
		||||
            '29a958c37e1fb04c49b1cc3be4f38b53ffdeef61ab049865209f6b77817302d0'
 | 
			
		||||
            'd8db3b235d871d2b27986d3cb73a57b1d33fed52196a4b608152498a57e93838'
 | 
			
		||||
            'eb9a773b7b978bc508e8459ef835ff2cb8a41bb235caff1c18c5b718d7ce902c'
 | 
			
		||||
            '4edd92642d710d8a351dd2acce36d412eccbf60380f9d0368ec315acb49ad704')
 | 
			
		||||
            'ad22f6e1a2869730828ddaf93da8b8a748421b7afdd34e1213566985fe7b01dd'
 | 
			
		||||
            '29e612a8dda2b2b8af116c16b546a0e1d159f249bfd9628d640cad0f61f0cc4f'
 | 
			
		||||
            '555133445de48e781ced3a450bcdf9bfbe4d66b118bbd5b28fea789fa023dd66'
 | 
			
		||||
            'dc1eca93dad93c9c015332d188f5a69508c2077536b8be653d2ff45f1b034941'
 | 
			
		||||
            '1f572e748d96403218e846ec469474f557f04d2f5ff137dd2a31fffa193f760e'
 | 
			
		||||
            'a413700adf3b45b7d3c18d2ffed390b9e5769cb361a9a0530f98bfff29fd0aef')
 | 
			
		||||
 | 
			
		||||
_kernelname=${pkgbase#linux}
 | 
			
		||||
 | 
			
		||||
@ -60,6 +64,15 @@ prepare() {
 | 
			
		||||
  # For details, see https://lkml.org/lkml/2014/1/26/22
 | 
			
		||||
  patch -p1 -i "${srcdir}/0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch"
 | 
			
		||||
 | 
			
		||||
  # Fix various bugs caused by rootfs having FSID 0
 | 
			
		||||
  # See http://www.spinics.net/lists/kernel/msg1716924.html
 | 
			
		||||
  patch -p1 -i "${srcdir}/0005-fs-Don-t-return-0-from-get_anon_bdev.patch"
 | 
			
		||||
 | 
			
		||||
  # Disable usb autosuspend for intel btusb
 | 
			
		||||
  # See http://www.spinics.net/lists/kernel/msg1716461.html
 | 
			
		||||
  # Until a solution is found, make sure the driver leaves autosuspend alone
 | 
			
		||||
  patch -p1 -i "${srcdir}/0006-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch"
 | 
			
		||||
 | 
			
		||||
  if [ "${CARCH}" = "x86_64" ]; then
 | 
			
		||||
    cat "${srcdir}/config.x86_64" > ./.config
 | 
			
		||||
  else
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user