[arch-commits] Commit in udev/repos (3 files)

Thomas Bächler thomas at archlinux.org
Sun Jan 31 07:39:05 EST 2010


    Date: Sunday, January 31, 2010 @ 07:39:05
  Author: thomas
Revision: 66510

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-x86_64/firmware-loader-fix-missing-firmware.patch
    (from rev 66508, udev/trunk/firmware-loader-fix-missing-firmware.patch)
Modified:
  udev/repos/testing-x86_64/	(properties)
  udev/repos/testing-x86_64/PKGBUILD

--------------------------------------------+
 PKGBUILD                                   |   11 ++++++++---
 firmware-loader-fix-missing-firmware.patch |   27 +++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 3 deletions(-)


Property changes on: udev/repos/testing-x86_64
___________________________________________________________________
Modified: svnmerge-integrated
   - /udev/trunk:1-66424
   + /udev/trunk:1-66509

Modified: testing-x86_64/PKGBUILD
===================================================================
--- testing-x86_64/PKGBUILD	2010-01-31 12:38:42 UTC (rev 66509)
+++ testing-x86_64/PKGBUILD	2010-01-31 12:39:05 UTC (rev 66510)
@@ -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-x86_64/firmware-loader-fix-missing-firmware.patch (from rev 66508, udev/trunk/firmware-loader-fix-missing-firmware.patch)
===================================================================
--- testing-x86_64/firmware-loader-fix-missing-firmware.patch	                        (rev 0)
+++ testing-x86_64/firmware-loader-fix-missing-firmware.patch	2010-01-31 12:39:05 UTC (rev 66510)
@@ -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