From 524449c0184d44773d4947db8cd3bfd98a0a215f Mon Sep 17 00:00:00 2001 From: Grazvydas Ignotas Date: Thu, 22 Apr 2010 16:54:02 +0300 Subject: [PATCH] compat: fix uevent_suppress on 2.6.29 or older kernels Missing uevent_suppress is causing two uevents instead of one, which is confusing udev and sometimes causing firmware load to fail due to race condition, so let's add it. Signed-off-by: Grazvydas Ignotas --- compat/compat_firmware_class.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compat/compat_firmware_class.c b/compat/compat_firmware_class.c index ce937a35c706..54ee8b91f1e5 100644 --- a/compat/compat_firmware_class.c +++ b/compat/compat_firmware_class.c @@ -432,6 +432,8 @@ static int fw_register_device(struct device **dev_p, const char *fw_name, dev_set_drvdata(f_dev, fw_priv); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)) dev_set_uevent_suppress(f_dev, 1); +#else + f_dev->uevent_suppress = 1; #endif retval = device_register(f_dev); if (retval) { @@ -479,9 +481,11 @@ static int fw_setup_device(struct firmware *fw, struct device **dev_p, goto error_unreg; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)) if (uevent) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)) dev_set_uevent_suppress(f_dev, 0); +#else + f_dev->uevent_suppress = 0; #endif *dev_p = f_dev; goto out; -- 2.30.2