[arch-commits] Commit in udev/repos (3 files)
Thomas Bächler
thomas at archlinux.org
Sun Jan 31 12:38:42 UTC 2010
Date: Sunday, January 31, 2010 @ 07:38:42
Author: thomas
Revision: 66509
Merged revisions 66508 via svnmerge from
svn+ssh://gerolde.archlinux.org/srv/svn-packages/udev/trunk
........
r66508 | thomas | 2010-01-31 13:38:25 +0100 (So, 31 Jan 2010) | 4 lines
Fix a bug in the new firmware loader
When a firmware file is not found, the firmware loader does not properly report error to the kernel, resulting in a 60 second stall during modprobe.
........
Added:
udev/repos/testing-i686/firmware-loader-fix-missing-firmware.patch
(from rev 66508, udev/trunk/firmware-loader-fix-missing-firmware.patch)
Modified:
udev/repos/testing-i686/ (properties)
udev/repos/testing-i686/PKGBUILD
--------------------------------------------+
PKGBUILD | 11 ++++++++---
firmware-loader-fix-missing-firmware.patch | 27 +++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 3 deletions(-)
Property changes on: udev/repos/testing-i686
___________________________________________________________________
Modified: svnmerge-integrated
- /udev/trunk:1-66425
+ /udev/trunk:1-66508
Modified: testing-i686/PKGBUILD
===================================================================
--- testing-i686/PKGBUILD 2010-01-31 12:38:25 UTC (rev 66508)
+++ testing-i686/PKGBUILD 2010-01-31 12:38:42 UTC (rev 66509)
@@ -6,7 +6,7 @@
pkgbase="udev"
pkgname=('udev' 'udev-compat')
pkgver=151
-pkgrel=1
+pkgrel=2
arch=(i686 x86_64)
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
license=('GPL')
@@ -16,17 +16,22 @@
makedepends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
81-arch.rules load-modules.sh cdsymlinks.sh root-link.sh
- arch-udev-rules.patch ignore-remove.sh)
+ arch-udev-rules.patch ignore-remove.sh
+ firmware-loader-fix-missing-firmware.patch)
md5sums=('aeae0e6273dcbec246c3c1b9868ebed1'
'6393ee81993f8b9beb776ca904005864'
'a2d0d59742b80b3b28ed498718654eb7'
'2e808ee78d237c478b57af2a68d43769'
'2d6dc6842464f107bccc68cd505a6c31'
'22c1f059cdeddaac5e7fe33b007da6a3'
- '35fa97500243a79b2370fa4684828e69')
+ '35fa97500243a79b2370fa4684828e69'
+ 'ec1fa2ecaff2e8efc611cb70568630ad')
build() {
cd $srcdir/$pkgname-$pkgver
+ # The new firmware loader has a bug where modprobe will hang 60 seconds when a
+ # firmware file is missing. Fix this by properly reporting error to the kernel
+ patch -p1 -i "$srcdir"/firmware-loader-fix-missing-firmware.patch || return 1
./configure --prefix="" --mandir=/usr/share/man\
--includedir=/usr/include\
--libexecdir=/lib/udev\
Copied: udev/repos/testing-i686/firmware-loader-fix-missing-firmware.patch (from rev 66508, udev/trunk/firmware-loader-fix-missing-firmware.patch)
===================================================================
--- testing-i686/firmware-loader-fix-missing-firmware.patch (rev 0)
+++ testing-i686/firmware-loader-fix-missing-firmware.patch 2010-01-31 12:38:42 UTC (rev 66509)
@@ -0,0 +1,27 @@
+diff -Nur udev-151.orig/extras/firmware/firmware.c udev-151/extras/firmware/firmware.c
+--- udev-151.orig/extras/firmware/firmware.c 2009-12-15 16:19:30.000000000 +0100
++++ udev-151/extras/firmware/firmware.c 2010-01-31 13:17:09.195896260 +0100
+@@ -149,6 +149,7 @@
+
+ util_path_encode(firmware, fwencpath, sizeof(fwencpath));
+ util_strscpyl(misspath, sizeof(misspath), udev_get_dev_path(udev), "/.udev/firmware-missing/", fwencpath, NULL);
++ util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL);
+
+ if (fwfile == NULL) {
+ int err;
+@@ -166,6 +167,7 @@
+ udev_selinux_resetfscreatecon(udev);
+ } while (err == -ENOENT);
+ rc = 2;
++ set_loading(udev, loadpath, "-1");
+ goto exit;
+ }
+
+@@ -176,7 +178,6 @@
+ if (unlink(misspath) == 0)
+ util_delete_path(udev, misspath);
+
+- util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL);
+ set_loading(udev, loadpath, "1");
+
+ util_strscpyl(datapath, sizeof(datapath), udev_get_sys_path(udev), devpath, "/data", NULL);
More information about the arch-commits
mailing list