diff --git a/0001-activate-fix-fd-leak-in-do_accept.patch b/0001-activate-fix-fd-leak-in-do_accept.patch new file mode 100644 index 0000000..14104a3 --- /dev/null +++ b/0001-activate-fix-fd-leak-in-do_accept.patch @@ -0,0 +1,26 @@ +From aa44499da15a8fa7026463555a7a27e55e4e24a8 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 10 Sep 2014 22:14:41 +0300 +Subject: [PATCH] activate: fix fd leak in do_accept() + +Found with Coverity. +--- + src/activate/activate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/activate/activate.c src/activate/activate.c +index 8942773..0a1df37 100644 +--- src/activate/activate.c ++++ src/activate/activate.c +@@ -242,7 +242,7 @@ static int launch1(const char* child, char** argv, char **env, int fd) { + + static int do_accept(const char* name, char **argv, char **envp, int fd) { + _cleanup_free_ char *local = NULL, *peer = NULL; +- int fd2; ++ _cleanup_close_ int fd2 = -1; + + fd2 = accept(fd, NULL, NULL); + if (fd2 < 0) { +-- +1.7.9.2 + diff --git a/0001-systemctl-allow-to-change-the-default-target-without.patch b/0001-systemctl-allow-to-change-the-default-target-without.patch new file mode 100644 index 0000000..8e78fe0 --- /dev/null +++ b/0001-systemctl-allow-to-change-the-default-target-without.patch @@ -0,0 +1,51 @@ +From a1484a216e79da1fa7e2323095fb1b7203fb7a17 Mon Sep 17 00:00:00 2001 +From: Djalal Harouni +Date: Mon, 14 Apr 2014 01:07:52 +0100 +Subject: [PATCH] systemctl: allow to change the default target without the + --force switch + +Currently "systemctl set-default" will fail to change the default target +due to the 'default.target' being a symlink which is always the case. + +To work around this, the user must specify the "--force" switch to be +able to overwrite the existing symlink. + +This is clearly a regression that was introduced by commit 718db96199e +since it worked before without the "--force" switch and the man pages do +not mention that you need to specify it. It is expected that this is a +symlink. + +So just explicity set the force flag to make it work again. + +https://bugs.freedesktop.org/show_bug.cgi?id=76623 + +Reported-by: +--- + src/systemctl/systemctl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git src/systemctl/systemctl.c src/systemctl/systemctl.c +index ee0938f..1b381f7 100644 +--- src/systemctl/systemctl.c ++++ src/systemctl/systemctl.c +@@ -1968,7 +1968,7 @@ static int set_default(sd_bus *bus, char **args) { + return log_oom(); + + if (!bus || avoid_bus()) { +- r = unit_file_set_default(arg_scope, arg_root, unit, arg_force, &changes, &n_changes); ++ r = unit_file_set_default(arg_scope, arg_root, unit, true, &changes, &n_changes); + if (r < 0) { + log_error("Failed to set default target: %s", strerror(-r)); + return r; +@@ -1990,7 +1990,7 @@ static int set_default(sd_bus *bus, char **args) { + "SetDefaultTarget", + &error, + &reply, +- "sb", unit, arg_force); ++ "sb", unit, true); + if (r < 0) { + log_error("Failed to set default target: %s", bus_error_message(&error, -r)); + return r; +-- +1.7.9.2 + diff --git a/0002-analyze-avoid-a-null-dereference.patch b/0002-analyze-avoid-a-null-dereference.patch new file mode 100644 index 0000000..b766237 --- /dev/null +++ b/0002-analyze-avoid-a-null-dereference.patch @@ -0,0 +1,30 @@ +From d725a138c5c311ba06567d6841933aa5b7b6a435 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Thu, 11 Sep 2014 23:41:44 +0200 +Subject: [PATCH] analyze: avoid a null dereference + +If we have an error in the early sd_bus_* calls then unit_times +will still be null. + +Found with coverity. Fixes: CID#996464 +--- + src/analyze/analyze.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index d860a02..1281d6b 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -277,7 +277,8 @@ static int acquire_time_data(sd_bus *bus, struct unit_times **out) { + return c; + + fail: +- free_unit_times(unit_times, (unsigned) c); ++ if (unit_times) ++ free_unit_times(unit_times, (unsigned) c); + return r; + } + +-- +1.7.9.2 + diff --git a/0003-analyze-fix-mem-leak.patch b/0003-analyze-fix-mem-leak.patch new file mode 100644 index 0000000..10ecbcf --- /dev/null +++ b/0003-analyze-fix-mem-leak.patch @@ -0,0 +1,27 @@ +From 0ee9613d98cbe1f36ffc98c6bfa51dd2b798fc6d Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 13 Sep 2014 12:29:43 +0200 +Subject: [PATCH] analyze: fix mem leak + +Found with Coverity. Fixes: CID#1237756 +--- + src/analyze/analyze.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git src/analyze/analyze.c src/analyze/analyze.c +index 1281d6b..82f5cf3 100644 +--- src/analyze/analyze.c ++++ src/analyze/analyze.c +@@ -848,7 +848,8 @@ static int list_dependencies(sd_bus *bus, const char *name) { + char ts[FORMAT_TIMESPAN_MAX]; + struct unit_times *times; + int r; +- const char *path, *id; ++ const char *id; ++ _cleanup_free_ char *path = NULL; + _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; + struct boot_times *boot; +-- +1.7.9.2 + diff --git a/0004-backlight-Avoid-error-when-state-restore-is-disabled.patch b/0004-backlight-Avoid-error-when-state-restore-is-disabled.patch new file mode 100644 index 0000000..281f7b5 --- /dev/null +++ b/0004-backlight-Avoid-error-when-state-restore-is-disabled.patch @@ -0,0 +1,33 @@ +From b76388e123e8d73ded1fd53937d816b314948517 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Thu, 11 Sep 2014 00:49:36 +0200 +Subject: [PATCH] backlight: Avoid error when state restore is disabled + +When the state restore is disabled, we would print: +"Unknown verb: load" instead of simply skipping loading the +state. +--- + src/backlight/backlight.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git src/backlight/backlight.c src/backlight/backlight.c +index 4d94ebf..0a2bac6 100644 +--- src/backlight/backlight.c ++++ src/backlight/backlight.c +@@ -372,9 +372,12 @@ int main(int argc, char *argv[]) { + * device probing should be complete), so that the validity + * check at boot time doesn't have to be reliable. */ + +- if (streq(argv[1], "load") && shall_restore_state()) { ++ if (streq(argv[1], "load")) { + _cleanup_free_ char *value = NULL; + ++ if (!shall_restore_state()) ++ return EXIT_SUCCESS; ++ + if (!validate_device(udev, device)) + return EXIT_SUCCESS; + +-- +1.7.9.2 + diff --git a/0005-bus-avoid-using-m-kdbus-after-freeing-it.patch b/0005-bus-avoid-using-m-kdbus-after-freeing-it.patch new file mode 100644 index 0000000..93f4711 --- /dev/null +++ b/0005-bus-avoid-using-m-kdbus-after-freeing-it.patch @@ -0,0 +1,35 @@ +Based on fd989a0bc999d79719408ac28b126d9c9016bcb5 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 10 Sep 2014 12:20:38 +0300 +Subject: [PATCH] bus: avoid using m->kdbus after freeing it + +m->kdbus could be freed before it is released. Changing the +order fixes the issue. + +Found with Coverity. Fixes: CID#1237798 +--- + src/libsystemd/sd-bus/bus-message.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- src/libsystemd/sd-bus/bus-message.c ++++ src/libsystemd/sd-bus/bus-message.c 2014-09-16 10:31:37.538735664 +0000 +@@ -126,9 +126,6 @@ static void message_free(sd_bus_message + + message_reset_parts(m); + +- if (m->free_kdbus) +- free(m->kdbus); +- + if (m->release_kdbus) { + uint64_t off; + +@@ -136,6 +133,9 @@ static void message_free(sd_bus_message + ioctl(m->bus->input_fd, KDBUS_CMD_FREE, &off); + } + ++ if (m->free_kdbus) ++ free(m->kdbus); ++ + if (m->bus) + sd_bus_unref(m->bus); + diff --git a/0006-bus-unref-buscreds-on-failure.patch b/0006-bus-unref-buscreds-on-failure.patch new file mode 100644 index 0000000..d6ec9cc --- /dev/null +++ b/0006-bus-unref-buscreds-on-failure.patch @@ -0,0 +1,32 @@ +From 2b347169b9046ff2d735ef23e62a8c74f5151600 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 10 Sep 2014 12:20:42 +0300 +Subject: [PATCH] bus: unref buscreds on failure + +Actually unref the buscreds when we are not going to return a +pointer to them. As when bus_creds_add_more fails we immediately +return the error code otherwise and leak the new buscreds. +Found with coverity. Fixes: CID#1237761 +--- + src/libsystemd/sd-bus/sd-bus.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c +index 78e91b9..83b3aa1 100644 +--- src/libsystemd/sd-bus/sd-bus.c ++++ src/libsystemd/sd-bus/sd-bus.c +@@ -3339,8 +3339,10 @@ _public_ int sd_bus_get_peer_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **re + } + + r = bus_creds_add_more(c, mask, pid, 0); +- if (r < 0) ++ if (r < 0) { ++ sd_bus_creds_unref(c); + return r; ++ } + + *ret = c; + return 0; +-- +1.7.9.2 + diff --git a/0007-core-fix-a-potential-mem-leak.patch b/0007-core-fix-a-potential-mem-leak.patch new file mode 100644 index 0000000..0300390 --- /dev/null +++ b/0007-core-fix-a-potential-mem-leak.patch @@ -0,0 +1,25 @@ +Based on 4d5e13a125cf8d77d432225ab69826caa1d1cf59 Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Sat, 13 Sep 2014 12:35:06 +0200 +Subject: [PATCH] core: fix a potential mem leak + +Found with Coverity. Fixes: CID#996438 +--- + src/core/load-fragment.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- src/core/load-fragment.c ++++ src/core/load-fragment.c 2014-09-16 10:35:13.354235607 +0000 +@@ -1294,8 +1294,11 @@ int config_parse_timer(const char *unit, + } + + v = new0(TimerValue, 1); +- if (!v) ++ if (!v) { ++ if (c) ++ free(c); + return log_oom(); ++ } + + v->base = b; + v->clock_id = id; diff --git a/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch b/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch new file mode 100644 index 0000000..1cc429c --- /dev/null +++ b/0008-core-smack-setup-Actually-allow-for-succesfully-load.patch @@ -0,0 +1,31 @@ +From b9289d4c6e13ec5fb67bfce69c826d93b004da6a Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Fri, 12 Sep 2014 16:49:48 +0300 +Subject: [PATCH] core: smack-setup: Actually allow for succesfully loading + CIPSO policy + +The line under the last switch statement *loaded_policy = true; +would never be executed. As all switch cases return 0. Thus the +policy would never be marked as loaded. + +Found with Coverity. Fixes: CID#1237785 +--- + src/core/smack-setup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/smack-setup.c src/core/smack-setup.c +index 5f6dabf..5d8a26c 100644 +--- src/core/smack-setup.c ++++ src/core/smack-setup.c +@@ -158,7 +158,7 @@ int smack_setup(bool *loaded_policy) { + return 0; + case 0: + log_info("Successfully loaded Smack/CIPSO policies."); +- return 0; ++ break; + default: + log_warning("Failed to load Smack/CIPSO access rules: %s, ignoring.", + strerror(abs(r))); +-- +1.7.9.2 + diff --git a/0009-hwdb-update.patch b/0009-hwdb-update.patch new file mode 100644 index 0000000..099e33b --- /dev/null +++ b/0009-hwdb-update.patch @@ -0,0 +1,3363 @@ +From fea0bfaed5411de43811dc428e763029d3aaabe5 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 9 Sep 2014 07:44:02 +0200 +Subject: [PATCH] hwdb: update + +--- + hwdb/20-OUI.hwdb | 249 +++++- + hwdb/20-pci-vendor-model.hwdb | 1987 ++++++++++++++++++++++++++++++++++++++++- + hwdb/20-usb-vendor-model.hwdb | 2 +- + 3 files changed, 2199 insertions(+), 39 deletions(-) + +diff --git hwdb/20-OUI.hwdb hwdb/20-OUI.hwdb +index e0c5fed..73df96c 100644 +--- hwdb/20-OUI.hwdb ++++ hwdb/20-OUI.hwdb +@@ -4103,7 +4103,7 @@ OUI:0050C2561* + ID_OUI_FROM_DATABASE=Seitec Elektronik GmbH + + OUI:0050C2562* +- ID_OUI_FROM_DATABASE=C21 Technology Limited ++ ID_OUI_FROM_DATABASE=C21 Systems Limited + + OUI:0050C2563* + ID_OUI_FROM_DATABASE=ORTRAT, S.L. +@@ -26081,7 +26081,7 @@ OUI:00105D* + ID_OUI_FROM_DATABASE=Draeger Medical + + OUI:00105E* +- ID_OUI_FROM_DATABASE=HEKIMIAN LABORATORIES, INC. ++ ID_OUI_FROM_DATABASE=Spirent plc, Service Assurance Broadband + + OUI:00105F* + ID_OUI_FROM_DATABASE=ZODIAC DATA SYSTEMS +@@ -35786,7 +35786,7 @@ OUI:001D04* + ID_OUI_FROM_DATABASE=Zipit Wireless, Inc. + + OUI:001D05* +- ID_OUI_FROM_DATABASE=iLight ++ ID_OUI_FROM_DATABASE=Eaton Corporation + + OUI:001D06* + ID_OUI_FROM_DATABASE=HM Electronics, Inc. +@@ -44287,6 +44287,9 @@ OUI:0034F1* + OUI:003532* + ID_OUI_FROM_DATABASE=Electro-Metrics Corporation + ++OUI:003560* ++ ID_OUI_FROM_DATABASE=Rosen Aviation ++ + OUI:0036F8* + ID_OUI_FROM_DATABASE=Conti Temic microelectronic GmbH + +@@ -50072,7 +50075,7 @@ OUI:00D01E* + ID_OUI_FROM_DATABASE=PINGTEL CORP. + + OUI:00D01F* +- ID_OUI_FROM_DATABASE=CTAM PTY. LTD. ++ ID_OUI_FROM_DATABASE=Senetas Security + + OUI:00D020* + ID_OUI_FROM_DATABASE=AIM SYSTEM, INC. +@@ -51616,6 +51619,9 @@ OUI:00EEBD* + OUI:00F051* + ID_OUI_FROM_DATABASE=KWB Gmbh + ++OUI:00F3DB* ++ ID_OUI_FROM_DATABASE=WOO Sports ++ + OUI:00F403* + ID_OUI_FROM_DATABASE=Orbis Systems Oy + +@@ -51889,6 +51895,9 @@ OUI:04B3B6* + OUI:04B466* + ID_OUI_FROM_DATABASE=BSP Co., Ltd. + ++OUI:04BD70* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:04BFA8* + ID_OUI_FROM_DATABASE=ISB Corporation + +@@ -51898,6 +51907,9 @@ OUI:04C05B* + OUI:04C06F* + ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd + ++OUI:04C09C* ++ ID_OUI_FROM_DATABASE=Tellabs Inc. ++ + OUI:04C1B9* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + +@@ -52657,6 +52669,9 @@ OUI:089F97* + OUI:08A12B* + ID_OUI_FROM_DATABASE=ShenZhen EZL Technology Co., Ltd + ++OUI:08A5C8* ++ ID_OUI_FROM_DATABASE=Sunnovo International Limited ++ + OUI:08A95A* + ID_OUI_FROM_DATABASE=Azurewave + +@@ -52747,6 +52762,9 @@ OUI:08EE8B* + OUI:08EF3B* + ID_OUI_FROM_DATABASE=MCS Logic Inc. + ++OUI:08EFAB* ++ ID_OUI_FROM_DATABASE=SAYME WIRELESS SENSOR NETWORK ++ + OUI:08F1B7* + ID_OUI_FROM_DATABASE=Towerstream Corpration + +@@ -53125,6 +53143,9 @@ OUI:1001CA* + OUI:1005CA* + ID_OUI_FROM_DATABASE=Cisco + ++OUI:100723* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:1008B1* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -53389,6 +53410,9 @@ OUI:10C586* + OUI:10C61F* + ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd + ++OUI:10C67E* ++ ID_OUI_FROM_DATABASE=SHENZHEN JUCHIN TECHNOLOGY CO., LTD ++ + OUI:10C6FC* + ID_OUI_FROM_DATABASE=Garmin International + +@@ -53446,6 +53470,9 @@ OUI:10F3DB* + OUI:10F49A* + ID_OUI_FROM_DATABASE=T3 Innovation + ++OUI:10F681* ++ ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd. ++ + OUI:10F96F* + ID_OUI_FROM_DATABASE=LG Electronics + +@@ -53527,6 +53554,9 @@ OUI:1435B3* + OUI:143605* + ID_OUI_FROM_DATABASE=Nokia Corporation + ++OUI:1436C6* ++ ID_OUI_FROM_DATABASE=Lenovo Mobile Communication Technology Ltd. ++ + OUI:14373B* + ID_OUI_FROM_DATABASE=PROCOM Systems + +@@ -53782,6 +53812,9 @@ OUI:18193F* + OUI:181BEB* + ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc + ++OUI:181E78* ++ ID_OUI_FROM_DATABASE=SAGEMCOM ++ + OUI:181EB0* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -53881,6 +53914,9 @@ OUI:18622C* + OUI:186472* + ID_OUI_FROM_DATABASE=Aruba Networks + ++OUI:186571* ++ ID_OUI_FROM_DATABASE=Top Victory Electronics (Taiwan) Co., Ltd. ++ + OUI:1866E3* + ID_OUI_FROM_DATABASE=Veros Systems, Inc. + +@@ -54023,7 +54059,7 @@ OUI:18CF5E* + ID_OUI_FROM_DATABASE=Liteon Technology Corporation + + OUI:18D071* +- ID_OUI_FROM_DATABASE=DASAN SMC, Inc. ++ ID_OUI_FROM_DATABASE=DASAN CO., LTD. + + OUI:18D5B6* + ID_OUI_FROM_DATABASE=SMG Holdings LLC +@@ -55270,6 +55306,9 @@ OUI:28D576* + OUI:28D93E* + ID_OUI_FROM_DATABASE=Telecor Inc. + ++OUI:28D98A* ++ ID_OUI_FROM_DATABASE=Hangzhou Konke Technology Co.,Ltd. ++ + OUI:28D997* + ID_OUI_FROM_DATABASE=Yuduan Mobile Co., Ltd. + +@@ -55387,6 +55426,9 @@ OUI:2C2D48* + OUI:2C3068* + ID_OUI_FROM_DATABASE=Pantech Co.,Ltd + ++OUI:2C337A* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:2C3427* + ID_OUI_FROM_DATABASE=ERCO & GENER + +@@ -55891,6 +55933,9 @@ OUI:30D357* + OUI:30D46A* + ID_OUI_FROM_DATABASE=Autosales Incorporated + ++OUI:30D587* ++ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ++ + OUI:30D6C9* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + +@@ -56062,6 +56107,9 @@ OUI:346BD3* + OUI:346E8A* + ID_OUI_FROM_DATABASE=Ecosense + ++OUI:346F90* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:346F92* + ID_OUI_FROM_DATABASE=White Rodgers Division + +@@ -56266,6 +56314,9 @@ OUI:34E42A* + OUI:34E6AD* + ID_OUI_FROM_DATABASE=Intel Corporate + ++OUI:34E6D7* ++ ID_OUI_FROM_DATABASE=Dell Inc. ++ + OUI:34EF44* + ID_OUI_FROM_DATABASE=2Wire + +@@ -56413,6 +56464,9 @@ OUI:385FC3* + OUI:386077* + ID_OUI_FROM_DATABASE=PEGATRON CORPORATION + ++OUI:3863BB* ++ ID_OUI_FROM_DATABASE=Hewlett Packard ++ + OUI:3863F6* + ID_OUI_FROM_DATABASE=3NOD MULTIMEDIA(SHENZHEN)CO.,LTD + +@@ -56677,6 +56731,9 @@ OUI:3C3888* + OUI:3C39C3* + ID_OUI_FROM_DATABASE=JW Electronics Co., Ltd. + ++OUI:3C39E7* ++ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. ++ + OUI:3C3A73* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -56689,6 +56746,9 @@ OUI:3C438E* + OUI:3C46D8* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. + ++OUI:3C4937* ++ ID_OUI_FROM_DATABASE=ASSMANN Electronic GmbH ++ + OUI:3C4A92* + ID_OUI_FROM_DATABASE=Hewlett-Packard Company + +@@ -56815,6 +56875,9 @@ OUI:3CAA3F* + OUI:3CAB8E* + ID_OUI_FROM_DATABASE=Apple + ++OUI:3CAE69* ++ ID_OUI_FROM_DATABASE=ESA Elektroschaltanlagen Grimma GmbH ++ + OUI:3CB15B* + ID_OUI_FROM_DATABASE=Avaya, Inc + +@@ -57211,6 +57274,9 @@ OUI:40E730* + OUI:40E793* + ID_OUI_FROM_DATABASE=Shenzhen Siviton Technology Co.,Ltd + ++OUI:40EACE* ++ ID_OUI_FROM_DATABASE=FOUNDER BROADBAND NETWORK SERVICE CO.,LTD ++ + OUI:40ECF8* + ID_OUI_FROM_DATABASE=Siemens AG + +@@ -57535,6 +57601,9 @@ OUI:44DCCB* + OUI:44E08E* + ID_OUI_FROM_DATABASE=Cisco SPVTG + ++OUI:44E137* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:44E49A* + ID_OUI_FROM_DATABASE=OMNITRONICS PTY LTD + +@@ -58348,6 +58417,9 @@ OUI:50A733* + OUI:50ABBF* + ID_OUI_FROM_DATABASE=Hoseo Telecom + ++OUI:50ADD5* ++ ID_OUI_FROM_DATABASE=Dynalec Corporation ++ + OUI:50AF73* + ID_OUI_FROM_DATABASE=Shenzhen Bitland Information Technology Co., Ltd. + +@@ -58537,6 +58609,9 @@ OUI:544A05* + OUI:544A16* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:545146* ++ ID_OUI_FROM_DATABASE=AMG Systems Ltd. ++ + OUI:5453ED* + ID_OUI_FROM_DATABASE=Sony Corporation + +@@ -58852,6 +58927,9 @@ OUI:58696C* + OUI:5869F9* + ID_OUI_FROM_DATABASE=Fusion Transactive Ltd. + ++OUI:586AB1* ++ ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ++ + OUI:586D8F* + ID_OUI_FROM_DATABASE=Cisco-Linksys, LLC + +@@ -59080,6 +59158,9 @@ OUI:5C2BF5* + OUI:5C2E59* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:5C2ED2* ++ ID_OUI_FROM_DATABASE=ABC(XiSheng) Electronics Co.,Ltd ++ + OUI:5C313E* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -59272,6 +59353,9 @@ OUI:5CDAD4* + OUI:5CDD70* + ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited + ++OUI:5CE0C5* ++ ID_OUI_FROM_DATABASE=Intel Corporate ++ + OUI:5CE0CA* + ID_OUI_FROM_DATABASE=FeiTian United (Beijing) System Technology Co., Ltd. + +@@ -59767,6 +59851,9 @@ OUI:64317E* + OUI:643409* + ID_OUI_FROM_DATABASE=BITwave Pte Ltd + ++OUI:643E8C* ++ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ++ + OUI:643F5F* + ID_OUI_FROM_DATABASE=Exablaze + +@@ -59908,6 +59995,9 @@ OUI:6487D7* + OUI:6488FF* + ID_OUI_FROM_DATABASE=Sichuan Changhong Electric Ltd. + ++OUI:64899A* ++ ID_OUI_FROM_DATABASE=LG Electronics ++ + OUI:648D9E* + ID_OUI_FROM_DATABASE=IVT Electronic Co.,Ltd + +@@ -60328,6 +60418,9 @@ OUI:68BC0C* + OUI:68BDAB* + ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. + ++OUI:68C90B* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:68CA00* + ID_OUI_FROM_DATABASE=Octopus Systems Limited + +@@ -60442,6 +60535,9 @@ OUI:6C22AB* + OUI:6C23B9* + ID_OUI_FROM_DATABASE=Sony Ericsson Mobile Communications AB + ++OUI:6C25B9* ++ ID_OUI_FROM_DATABASE=BBK Electronics Corp., Ltd., ++ + OUI:6C2995* + ID_OUI_FROM_DATABASE=Intel Corporate + +@@ -60574,6 +60670,9 @@ OUI:6C90B1* + OUI:6C92BF* + ID_OUI_FROM_DATABASE=Inspur Electronic Information Industry Co.,Ltd. + ++OUI:6C94F8* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:6C98EB* + ID_OUI_FROM_DATABASE=Ocedo GmbH + +@@ -60724,6 +60823,9 @@ OUI:700514* + OUI:700BC0* + ID_OUI_FROM_DATABASE=Dewav Technology Company + ++OUI:700FC7* ++ ID_OUI_FROM_DATABASE=SHENZHEN IKINLOOP TECHNOLOGY CO.,LTD. ++ + OUI:700FEC* + ID_OUI_FROM_DATABASE=Poindus Systems Corp. + +@@ -60802,6 +60904,9 @@ OUI:703AD8* + OUI:703C39* + ID_OUI_FROM_DATABASE=SEAWING Kft + ++OUI:703EAC* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:7041B7* + ID_OUI_FROM_DATABASE=Edwards Lifesciences LLC + +@@ -60901,6 +61006,9 @@ OUI:7076DD* + OUI:7076F0* + ID_OUI_FROM_DATABASE=LevelOne Communications (India) Private Limited + ++OUI:7076FF* ++ ID_OUI_FROM_DATABASE=KERLINK ++ + OUI:707BE8* + ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD + +@@ -61105,6 +61213,9 @@ OUI:74273C* + OUI:7427EA* + ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co., Ltd. + ++OUI:7429AF* ++ ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ++ + OUI:742B0F* + ID_OUI_FROM_DATABASE=Infinidat Ltd. + +@@ -61447,6 +61558,9 @@ OUI:78303B* + OUI:7830E1* + ID_OUI_FROM_DATABASE=UltraClenz, LLC + ++OUI:78312B* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:7831C1* + ID_OUI_FROM_DATABASE=Apple + +@@ -61639,6 +61753,9 @@ OUI:78ACC0* + OUI:78AE0C* + ID_OUI_FROM_DATABASE=Far South Networks + ++OUI:78B3B9* ++ ID_OUI_FROM_DATABASE=ShangHai sunup lighting CO.,LTD ++ + OUI:78B3CE* + ID_OUI_FROM_DATABASE=Elo touch solutions + +@@ -61741,6 +61858,9 @@ OUI:78E7D1* + OUI:78E8B6* + ID_OUI_FROM_DATABASE=zte corporation + ++OUI:78EB14* ++ ID_OUI_FROM_DATABASE=SHENZHEN FAST TECHNOLOGIES CO.,LTD ++ + OUI:78EC22* + ID_OUI_FROM_DATABASE=Shanghai Qihui Telecom Technology Co., LTD + +@@ -62569,6 +62689,9 @@ OUI:843A4B* + OUI:843F4E* + ID_OUI_FROM_DATABASE=Tri-Tech Manufacturing, Inc. + ++OUI:844464* ++ ID_OUI_FROM_DATABASE=ServerU Inc ++ + OUI:844823* + ID_OUI_FROM_DATABASE=WOXTER TECHNOLOGY Co. Ltd + +@@ -62605,6 +62728,9 @@ OUI:846223* + OUI:8462A6* + ID_OUI_FROM_DATABASE=EuroCB (Phils), Inc. + ++OUI:8463D6* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:846AED* + ID_OUI_FROM_DATABASE=Wireless Tsukamoto.,co.LTD + +@@ -62665,6 +62791,9 @@ OUI:848E0C* + OUI:848E96* + ID_OUI_FROM_DATABASE=Embertec Pty Ltd + ++OUI:848EDF* ++ ID_OUI_FROM_DATABASE=Sony Mobile Communications AB ++ + OUI:848F69* + ID_OUI_FROM_DATABASE=Dell Inc. + +@@ -62746,6 +62875,9 @@ OUI:84DB2F* + OUI:84DD20* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:84DDB7* ++ ID_OUI_FROM_DATABASE=Cilag GmbH International ++ + OUI:84DE3D* + ID_OUI_FROM_DATABASE=Crystal Vision Ltd + +@@ -62812,6 +62944,9 @@ OUI:881544* + OUI:8818AE* + ID_OUI_FROM_DATABASE=Tamron Co., Ltd + ++OUI:881DFC* ++ ID_OUI_FROM_DATABASE=Cisco ++ + OUI:881FA1* + ID_OUI_FROM_DATABASE=Apple + +@@ -63367,6 +63502,9 @@ OUI:8CDF9D* + OUI:8CE081* + ID_OUI_FROM_DATABASE=zte corporation + ++OUI:8CE78C* ++ ID_OUI_FROM_DATABASE=DK Networks ++ + OUI:8CE7B3* + ID_OUI_FROM_DATABASE=Sonardyne International Ltd + +@@ -63409,6 +63547,9 @@ OUI:900917* + OUI:900A3A* + ID_OUI_FROM_DATABASE=PSG Plastic Service GmbH + ++OUI:900CB4* ++ ID_OUI_FROM_DATABASE=Alinket Electronic Technology Co., Ltd ++ + OUI:900D66* + ID_OUI_FROM_DATABASE=Digimore Electronics Co., Ltd + +@@ -63556,6 +63697,9 @@ OUI:9067B5* + OUI:9067F3* + ID_OUI_FROM_DATABASE=Alcatel Lucent + ++OUI:9068C3* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:906DC8* + ID_OUI_FROM_DATABASE=DLG Automação Industrial Ltda + +@@ -63781,6 +63925,9 @@ OUI:940149* + OUI:9401C2* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:9405B6* ++ ID_OUI_FROM_DATABASE=Liling FullRiver Electronics & Technology Ltd ++ + OUI:940B2D* + ID_OUI_FROM_DATABASE=NetView Technologies(Shenzhen) Co., Ltd + +@@ -63913,6 +64060,9 @@ OUI:948B03* + OUI:948D50* + ID_OUI_FROM_DATABASE=Beamex Oy Ab + ++OUI:948E89* ++ ID_OUI_FROM_DATABASE=INDUSTRIAS UNIDAS SA DE CV ++ + OUI:948FEE* + ID_OUI_FROM_DATABASE=Hughes Telematics, Inc. + +@@ -64639,6 +64789,9 @@ OUI:9CD36D* + OUI:9CD643* + ID_OUI_FROM_DATABASE=D-Link International + ++OUI:9CD917* ++ ID_OUI_FROM_DATABASE=Motorola Mobility LLC ++ + OUI:9CDF03* + ID_OUI_FROM_DATABASE=Harman/Becker Automotive Systems GmbH + +@@ -65407,6 +65560,9 @@ OUI:A81B18* + OUI:A81B5D* + ID_OUI_FROM_DATABASE=Foxtel Management Pty Ltd + ++OUI:A81D16* ++ ID_OUI_FROM_DATABASE=AzureWave Technologies, Inc ++ + OUI:A81FAF* + ID_OUI_FROM_DATABASE=KRYPTON POLSKA + +@@ -65473,6 +65629,9 @@ OUI:A863DF* + OUI:A863F2* + ID_OUI_FROM_DATABASE=Texas Instruments + ++OUI:A86405* ++ ID_OUI_FROM_DATABASE=nimbus 9, Inc ++ + OUI:A865B2* + ID_OUI_FROM_DATABASE=DONGGUAN YISHANG ELECTRONIC TECHNOLOGY CO., LIMITED + +@@ -66064,6 +66223,9 @@ OUI:B0435D* + OUI:B04515* + ID_OUI_FROM_DATABASE=mira fitness,LLC. + ++OUI:B04519* ++ ID_OUI_FROM_DATABASE=TCT mobile ltd ++ + OUI:B04545* + ID_OUI_FROM_DATABASE=YACOUB Automation GmbH + +@@ -67105,6 +67267,9 @@ OUI:BC4760* + OUI:BC4B79* + ID_OUI_FROM_DATABASE=SensingTek + ++OUI:BC4DFB* ++ ID_OUI_FROM_DATABASE=Hitron Technologies. Inc ++ + OUI:BC4E3C* + ID_OUI_FROM_DATABASE=CORE STAFF CO., LTD. + +@@ -67114,6 +67279,9 @@ OUI:BC4E5D* + OUI:BC51FE* + ID_OUI_FROM_DATABASE=Swann Communications Pty Ltd + ++OUI:BC52B4* ++ ID_OUI_FROM_DATABASE=Alcatel-Lucent ++ + OUI:BC52B7* + ID_OUI_FROM_DATABASE=Apple + +@@ -67153,6 +67321,9 @@ OUI:BC71C1* + OUI:BC72B1* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:BC74D7* ++ ID_OUI_FROM_DATABASE=HangZhou JuRu Technology CO.,LTD ++ + OUI:BC764E* + ID_OUI_FROM_DATABASE=Rackspace US, Inc. + +@@ -67363,6 +67534,9 @@ OUI:C03580* + OUI:C035BD* + ID_OUI_FROM_DATABASE=Velocytech Aps + ++OUI:C035C5* ++ ID_OUI_FROM_DATABASE=Prosoft Systems LTD ++ + OUI:C03896* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + +@@ -67867,6 +68041,9 @@ OUI:C4BA99* + OUI:C4BD6A* + ID_OUI_FROM_DATABASE=SKF GmbH + ++OUI:C4BE84* ++ ID_OUI_FROM_DATABASE=Texas Instruments. ++ + OUI:C4C0AE* + ID_OUI_FROM_DATABASE=MIDORI ELECTRONIC CO., LTD. + +@@ -68527,6 +68704,9 @@ OUI:CCB8F1* + OUI:CCBD35* + ID_OUI_FROM_DATABASE=Steinel GmbH + ++OUI:CCBDD3* ++ ID_OUI_FROM_DATABASE=Ultimaker B.V. ++ + OUI:CCBE71* + ID_OUI_FROM_DATABASE=OptiLogix BV + +@@ -68698,6 +68878,9 @@ OUI:D046DC* + OUI:D04CC1* + ID_OUI_FROM_DATABASE=SINTRONES Technology Corp. + ++OUI:D04F7E* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D05099* + ID_OUI_FROM_DATABASE=ASRock Incorporation + +@@ -68734,6 +68917,9 @@ OUI:D05A0F* + OUI:D05AF1* + ID_OUI_FROM_DATABASE=Shenzhen Pulier Tech CO.,Ltd + ++OUI:D05BA8* ++ ID_OUI_FROM_DATABASE=zte corporation ++ + OUI:D05FB8* + ID_OUI_FROM_DATABASE=Texas Instruments + +@@ -69025,6 +69211,9 @@ OUI:D42F23* + OUI:D4319D* + ID_OUI_FROM_DATABASE=Sinwatec + ++OUI:D43266* ++ ID_OUI_FROM_DATABASE=Fike Corporation ++ + OUI:D437D7* + ID_OUI_FROM_DATABASE=zte corporation + +@@ -69307,6 +69496,9 @@ OUI:D4F143* + OUI:D4F46F* + ID_OUI_FROM_DATABASE=Apple + ++OUI:D4F513* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:D4F63F* + ID_OUI_FROM_DATABASE=IEA S.R.L. + +@@ -69568,6 +69760,9 @@ OUI:D8B8F6* + OUI:D8B90E* + ID_OUI_FROM_DATABASE=Triple Domain Vision Co.,Ltd. + ++OUI:D8BB2C* ++ ID_OUI_FROM_DATABASE=Apple ++ + OUI:D8BF4C* + ID_OUI_FROM_DATABASE=Victory Concept Electronics Limited + +@@ -69635,7 +69830,7 @@ OUI:D8E56D* + ID_OUI_FROM_DATABASE=TCT Mobile Limited + + OUI:D8E72B* +- ID_OUI_FROM_DATABASE=OnPATH Technologies ++ ID_OUI_FROM_DATABASE=NetScout Systems, Inc. + + OUI:D8E743* + ID_OUI_FROM_DATABASE=Wush, Inc +@@ -70084,6 +70279,9 @@ OUI:E08177* + OUI:E087B1* + ID_OUI_FROM_DATABASE=Nata-Info Ltd. + ++OUI:E0885D* ++ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc ++ + OUI:E08A7E* + ID_OUI_FROM_DATABASE=Exponent + +@@ -70474,6 +70672,9 @@ OUI:E4AFA1* + OUI:E4B021* + ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd + ++OUI:E4BAD9* ++ ID_OUI_FROM_DATABASE=360 Fly Inc. ++ + OUI:E4C146* + ID_OUI_FROM_DATABASE=Objetivos y Servicios de Valor A + +@@ -70603,6 +70804,9 @@ OUI:E82AEA* + OUI:E82E24* + ID_OUI_FROM_DATABASE=Out of the Fog Research LLC + ++OUI:E83381* ++ ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ++ + OUI:E83935* + ID_OUI_FROM_DATABASE=Hewlett Packard + +@@ -70720,6 +70924,9 @@ OUI:E88D28* + OUI:E88DF5* + ID_OUI_FROM_DATABASE=ZNYX Networks, Inc. + ++OUI:E88E60* ++ ID_OUI_FROM_DATABASE=NSD Corporation ++ + OUI:E89218* + ID_OUI_FROM_DATABASE=Arcontia International AB + +@@ -70918,6 +71125,9 @@ OUI:EC233D* + OUI:EC2368* + ID_OUI_FROM_DATABASE=IntelliVoice Co.,Ltd. + ++OUI:EC24B8* ++ ID_OUI_FROM_DATABASE=Texas Instruments ++ + OUI:EC2AF0* + ID_OUI_FROM_DATABASE=Ypsomed AG + +@@ -70978,6 +71188,9 @@ OUI:EC542E* + OUI:EC55F9* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. + ++OUI:EC59E7* ++ ID_OUI_FROM_DATABASE=Microsoft Corporation ++ + OUI:EC5C69* + ID_OUI_FROM_DATABASE=MITSUBISHI HEAVY INDUSTRIES MECHATRONICS SYSTEMS,LTD. + +@@ -71002,6 +71215,9 @@ OUI:EC7C74* + OUI:EC7D9D* + ID_OUI_FROM_DATABASE=MEI + ++OUI:EC8009* ++ ID_OUI_FROM_DATABASE=NovaSparks ++ + OUI:EC836C* + ID_OUI_FROM_DATABASE=RM Tech Co., Ltd. + +@@ -71449,6 +71665,9 @@ OUI:F0F002* + OUI:F0F260* + ID_OUI_FROM_DATABASE=Mobitec AB + ++OUI:F0F336* ++ ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD ++ + OUI:F0F5AE* + ID_OUI_FROM_DATABASE=Adaptrum Inc. + +@@ -71476,6 +71695,9 @@ OUI:F0F9F7* + OUI:F0FDA0* + ID_OUI_FROM_DATABASE=Acurix Networks LP + ++OUI:F0FE6B* ++ ID_OUI_FROM_DATABASE=Shanghai High-Flying Electronics Technology Co., Ltd ++ + OUI:F40321* + ID_OUI_FROM_DATABASE=BeNeXt B.V. + +@@ -71758,6 +71980,9 @@ OUI:F4EA67* + OUI:F4EC38* + ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO., LTD. + ++OUI:F4EE14* ++ ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. ++ + OUI:F4F15A* + ID_OUI_FROM_DATABASE=Apple + +@@ -71881,6 +72106,9 @@ OUI:F83DFF* + OUI:F842FB* + ID_OUI_FROM_DATABASE=Yasuda Joho Co.,ltd. + ++OUI:F84360* ++ ID_OUI_FROM_DATABASE=INGENICO ++ + OUI:F845AD* + ID_OUI_FROM_DATABASE=Konka Group Co., Ltd. + +@@ -72037,12 +72265,18 @@ OUI:F8AC6D* + OUI:F8B156* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:F8B2F3* ++ ID_OUI_FROM_DATABASE=GUANGZHOU BOSMA TECHNOLOGY CO.,LTD ++ + OUI:F8B599* + ID_OUI_FROM_DATABASE=Guangzhou CHNAVS Digital Technology Co.,Ltd + + OUI:F8BC12* + ID_OUI_FROM_DATABASE=Dell Inc + ++OUI:F8BC41* ++ ID_OUI_FROM_DATABASE=Rosslare Enterprises Limited ++ + OUI:F8C001* + ID_OUI_FROM_DATABASE=Juniper Networks + +@@ -72310,6 +72544,9 @@ OUI:FC6198* + OUI:FC626E* + ID_OUI_FROM_DATABASE=Beijing MDC Telecom + ++OUI:FC62B9* ++ ID_OUI_FROM_DATABASE=ALPS ERECTRIC CO.,LTD ++ + OUI:FC683E* + ID_OUI_FROM_DATABASE=Directed Perception, Inc + +diff --git hwdb/20-pci-vendor-model.hwdb hwdb/20-pci-vendor-model.hwdb +index 3bcdbc0..1b98b1d 100644 +--- hwdb/20-pci-vendor-model.hwdb ++++ hwdb/20-pci-vendor-model.hwdb +@@ -7892,6 +7892,9 @@ pci:v00001002d0000692B* + pci:v00001002d0000692F* + ID_MODEL_FROM_DATABASE=Tonga XT GL [FirePro W8100] + ++pci:v00001002d00006939* ++ ID_MODEL_FROM_DATABASE=Tonga PRO [Radeon R9 285] ++ + pci:v00001002d0000700F* + ID_MODEL_FROM_DATABASE=RS100 AGP Bridge + +@@ -17466,7 +17469,7 @@ pci:v00001093d00000162* + ID_MODEL_FROM_DATABASE=PCI-MIO-16XE-50 + + pci:v00001093d00001150* +- ID_MODEL_FROM_DATABASE=PCI-DIO-32HS High Speed Digital I/O Board ++ ID_MODEL_FROM_DATABASE=PCI-6533 (PCI-DIO-32HS) + + pci:v00001093d00001170* + ID_MODEL_FROM_DATABASE=PCI-MIO-16XE-10 +@@ -17481,22 +17484,31 @@ pci:v00001093d000011B0* + ID_MODEL_FROM_DATABASE=PXI-6070E + + pci:v00001093d000011C0* +- ID_MODEL_FROM_DATABASE=PXI-6040e ++ ID_MODEL_FROM_DATABASE=PXI-6040E + + pci:v00001093d000011D0* +- ID_MODEL_FROM_DATABASE=PXI-6030e ++ ID_MODEL_FROM_DATABASE=PXI-6030E + + pci:v00001093d00001270* +- ID_MODEL_FROM_DATABASE=PCI-6032e ++ ID_MODEL_FROM_DATABASE=PCI-6032E ++ ++pci:v00001093d00001290* ++ ID_MODEL_FROM_DATABASE=PCI-6704 ++ ++pci:v00001093d000012B0* ++ ID_MODEL_FROM_DATABASE=PCI-6534 + + pci:v00001093d00001310* + ID_MODEL_FROM_DATABASE=PCI-6602 + ++pci:v00001093d00001320* ++ ID_MODEL_FROM_DATABASE=PXI-6533 ++ + pci:v00001093d00001330* + ID_MODEL_FROM_DATABASE=PCI-6031E + + pci:v00001093d00001340* +- ID_MODEL_FROM_DATABASE=PCI-6033e ++ ID_MODEL_FROM_DATABASE=PCI-6033E + + pci:v00001093d00001350* + ID_MODEL_FROM_DATABASE=PCI-6071E +@@ -17504,6 +17516,12 @@ pci:v00001093d00001350* + pci:v00001093d00001360* + ID_MODEL_FROM_DATABASE=PXI-6602 + ++pci:v00001093d000013C0* ++ ID_MODEL_FROM_DATABASE=PXI-6508 ++ ++pci:v00001093d00001490* ++ ID_MODEL_FROM_DATABASE=PXI-6534 ++ + pci:v00001093d000014E0* + ID_MODEL_FROM_DATABASE=PCI-6110 + +@@ -17519,6 +17537,9 @@ pci:v00001093d000015B0* + pci:v00001093d00001710* + ID_MODEL_FROM_DATABASE=PXI-6509 + ++pci:v00001093d000017C0* ++ ID_MODEL_FROM_DATABASE=PXI-5690 ++ + pci:v00001093d000017D0* + ID_MODEL_FROM_DATABASE=PCI-6503 + +@@ -17534,6 +17555,33 @@ pci:v00001093d000018B0* + pci:v00001093d000018C0* + ID_MODEL_FROM_DATABASE=PXI-6052E + ++pci:v00001093d00001920* ++ ID_MODEL_FROM_DATABASE=PXI-6704 ++ ++pci:v00001093d00001930* ++ ID_MODEL_FROM_DATABASE=PCI-6040E ++ ++pci:v00001093d000019C0* ++ ID_MODEL_FROM_DATABASE=PCI-4472 ++ ++pci:v00001093d00001AA0* ++ ID_MODEL_FROM_DATABASE=PXI-4110 ++ ++pci:v00001093d00001AD0* ++ ID_MODEL_FROM_DATABASE=PCI-6133 ++ ++pci:v00001093d00001AE0* ++ ID_MODEL_FROM_DATABASE=PXI-6133 ++ ++pci:v00001093d00001E30* ++ ID_MODEL_FROM_DATABASE=PCI-6624 ++ ++pci:v00001093d00001E40* ++ ID_MODEL_FROM_DATABASE=PXI-6624 ++ ++pci:v00001093d00001E50* ++ ID_MODEL_FROM_DATABASE=PXI-5404 ++ + pci:v00001093d00002410* + ID_MODEL_FROM_DATABASE=PCI-6733 + +@@ -17543,12 +17591,42 @@ pci:v00001093d00002420* + pci:v00001093d00002430* + ID_MODEL_FROM_DATABASE=PCI-6731 + ++pci:v00001093d00002470* ++ ID_MODEL_FROM_DATABASE=PCI-4474 ++ ++pci:v00001093d000024A0* ++ ID_MODEL_FROM_DATABASE=PCI-4065 ++ ++pci:v00001093d000024B0* ++ ID_MODEL_FROM_DATABASE=PXI-4200 ++ ++pci:v00001093d000024F0* ++ ID_MODEL_FROM_DATABASE=PXI-4472 ++ ++pci:v00001093d00002510* ++ ID_MODEL_FROM_DATABASE=PCI-4472 ++ ++pci:v00001093d00002520* ++ ID_MODEL_FROM_DATABASE=PCI-4474 ++ ++pci:v00001093d000027A0* ++ ID_MODEL_FROM_DATABASE=PCI-6123 ++ ++pci:v00001093d000027B0* ++ ID_MODEL_FROM_DATABASE=PXI-6123 ++ + pci:v00001093d00002880* + ID_MODEL_FROM_DATABASE=DAQCard-6601 + + pci:v00001093d00002890* + ID_MODEL_FROM_DATABASE=PCI-6036E + ++pci:v00001093d000028A0* ++ ID_MODEL_FROM_DATABASE=PXI-4461 ++ ++pci:v00001093d000028B0* ++ ID_MODEL_FROM_DATABASE=PCI-6013 ++ + pci:v00001093d000028C0* + ID_MODEL_FROM_DATABASE=PCI-6014 + +@@ -17558,6 +17636,12 @@ pci:v00001093d000028D0* + pci:v00001093d000028E0* + ID_MODEL_FROM_DATABASE=PXI-5122 + ++pci:v00001093d000029F0* ++ ID_MODEL_FROM_DATABASE=PXI-7334 ++ ++pci:v00001093d00002A00* ++ ID_MODEL_FROM_DATABASE=PXI-7344 ++ + pci:v00001093d00002A60* + ID_MODEL_FROM_DATABASE=PCI-6023E + +@@ -17568,7 +17652,13 @@ pci:v00001093d00002A80* + ID_MODEL_FROM_DATABASE=PCI-6025E + + pci:v00001093d00002AB0* +- ID_MODEL_FROM_DATABASE=PXI-6025e ++ ID_MODEL_FROM_DATABASE=PXI-6025E ++ ++pci:v00001093d00002B10* ++ ID_MODEL_FROM_DATABASE=PXI-6527 ++ ++pci:v00001093d00002B20* ++ ID_MODEL_FROM_DATABASE=PCI-6527 + + pci:v00001093d00002B80* + ID_MODEL_FROM_DATABASE=PXI-6713 +@@ -17585,15 +17675,75 @@ pci:v00001093d00002C70* + pci:v00001093d00002C80* + ID_MODEL_FROM_DATABASE=PCI-6035E + ++pci:v00001093d00002C90* ++ ID_MODEL_FROM_DATABASE=PCI-6703 ++ + pci:v00001093d00002CA0* + ID_MODEL_FROM_DATABASE=PCI-6034E + ++pci:v00001093d00002CB0* ++ ID_MODEL_FROM_DATABASE=PCI-7344 ++ + pci:v00001093d00002CC0* + ID_MODEL_FROM_DATABASE=PXI-6608 + ++pci:v00001093d00002D20* ++ ID_MODEL_FROM_DATABASE=PXI-5600 ++ + pci:v00001093d00002DB0* + ID_MODEL_FROM_DATABASE=PCI-6608 + ++pci:v00001093d00002DC0* ++ ID_MODEL_FROM_DATABASE=PCI-4070 ++ ++pci:v00001093d00002DD0* ++ ID_MODEL_FROM_DATABASE=PXI-4070 ++ ++pci:v00001093d00002EB0* ++ ID_MODEL_FROM_DATABASE=PXI-4472 ++ ++pci:v00001093d00002EC0* ++ ID_MODEL_FROM_DATABASE=PXI-6115 ++ ++pci:v00001093d00002ED0* ++ ID_MODEL_FROM_DATABASE=PCI-6115 ++ ++pci:v00001093d00002EE0* ++ ID_MODEL_FROM_DATABASE=PXI-6120 ++ ++pci:v00001093d00002EF0* ++ ID_MODEL_FROM_DATABASE=PCI-6120 ++ ++pci:v00001093d00002FD1* ++ ID_MODEL_FROM_DATABASE=PCI-7334 ++ ++pci:v00001093d00002FD2* ++ ID_MODEL_FROM_DATABASE=PCI-7350 ++ ++pci:v00001093d00002FD3* ++ ID_MODEL_FROM_DATABASE=PCI-7342 ++ ++pci:v00001093d00002FD5* ++ ID_MODEL_FROM_DATABASE=PXI-7350 ++ ++pci:v00001093d00002FD6* ++ ID_MODEL_FROM_DATABASE=PXI-7342 ++ ++pci:v00001093d00007003* ++ ID_MODEL_FROM_DATABASE=PCI-6551 ++ ++pci:v00001093d00007004* ++ ID_MODEL_FROM_DATABASE=PXI-6551 ++ ++pci:v00001093d0000700B* ++ ID_MODEL_FROM_DATABASE=PXI-5421 ++ ++pci:v00001093d0000700C* ++ ID_MODEL_FROM_DATABASE=PCI-5421 ++ ++pci:v00001093d00007023* ++ ID_MODEL_FROM_DATABASE=PXI-2593 ++ + pci:v00001093d0000702C* + ID_MODEL_FROM_DATABASE=PXI-7831R + +@@ -17606,23 +17756,152 @@ pci:v00001093d0000702E* + pci:v00001093d0000702F* + ID_MODEL_FROM_DATABASE=PCI-7811R + ++pci:v00001093d00007030* ++ ID_MODEL_FROM_DATABASE=PCI-CAN (Series 2) ++ ++pci:v00001093d00007031* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/2 (Series 2) ++ ++pci:v00001093d00007032* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/LS (Series 2) ++ ++pci:v00001093d00007033* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/LS2 (Series 2) ++ ++pci:v00001093d00007034* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/DS (Series 2) ++ ++pci:v00001093d00007035* ++ ID_MODEL_FROM_DATABASE=PXI-8460 (Series 2, 1 port) ++ ++pci:v00001093d00007036* ++ ID_MODEL_FROM_DATABASE=PXI-8460 (Series 2, 2 ports) ++ ++pci:v00001093d00007037* ++ ID_MODEL_FROM_DATABASE=PXI-8461 (Series 2, 1 port) ++ ++pci:v00001093d00007038* ++ ID_MODEL_FROM_DATABASE=PXI-8461 (Series 2, 2 ports) ++ ++pci:v00001093d00007039* ++ ID_MODEL_FROM_DATABASE=PXI-8462 (Series 2) ++ ++pci:v00001093d0000703F* ++ ID_MODEL_FROM_DATABASE=PXI-2566 ++ ++pci:v00001093d00007040* ++ ID_MODEL_FROM_DATABASE=PXI-2567 ++ ++pci:v00001093d00007044* ++ ID_MODEL_FROM_DATABASE=MXI-4 Connection Monitor ++ ++pci:v00001093d00007047* ++ ID_MODEL_FROM_DATABASE=PXI-6653 ++ ++pci:v00001093d0000704C* ++ ID_MODEL_FROM_DATABASE=PXI-2530 ++ ++pci:v00001093d0000704F* ++ ID_MODEL_FROM_DATABASE=PXI-4220 ++ ++pci:v00001093d00007050* ++ ID_MODEL_FROM_DATABASE=PXI-4204 ++ + pci:v00001093d00007055* + ID_MODEL_FROM_DATABASE=PXI-7830R + + pci:v00001093d00007056* + ID_MODEL_FROM_DATABASE=PCI-7830R + ++pci:v00001093d0000705A* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/XS (Series 2) ++ ++pci:v00001093d0000705B* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/XS2 (Series 2) ++ ++pci:v00001093d0000705C* ++ ID_MODEL_FROM_DATABASE=PXI-8464 (Series 2, 1 port) ++ ++pci:v00001093d0000705D* ++ ID_MODEL_FROM_DATABASE=PXI-8464 (Series 2, 2 ports) ++ ++pci:v00001093d0000705E* ++ ID_MODEL_FROM_DATABASE=cRIO-9102 ++ ++pci:v00001093d00007060* ++ ID_MODEL_FROM_DATABASE=PXI-5610 ++ ++pci:v00001093d00007064* ++ ID_MODEL_FROM_DATABASE=PXI-1045 Trigger Routing Module ++ ++pci:v00001093d00007065* ++ ID_MODEL_FROM_DATABASE=PXI-6652 ++ ++pci:v00001093d00007066* ++ ID_MODEL_FROM_DATABASE=PXI-6651 ++ ++pci:v00001093d00007067* ++ ID_MODEL_FROM_DATABASE=PXI-2529 ++ ++pci:v00001093d00007068* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/SW (Series 2) ++ ++pci:v00001093d00007069* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/SW2 (Series 2) ++ ++pci:v00001093d0000706A* ++ ID_MODEL_FROM_DATABASE=PXI-8463 (Series 2, 1 port) ++ ++pci:v00001093d0000706B* ++ ID_MODEL_FROM_DATABASE=PXI-8463 (Series 2, 2 ports) ++ ++pci:v00001093d00007073* ++ ID_MODEL_FROM_DATABASE=PCI-6723 ++ + pci:v00001093d00007074* + ID_MODEL_FROM_DATABASE=PXI-7833R + ++pci:v00001093d00007075* ++ ID_MODEL_FROM_DATABASE=PXI-6552 ++ ++pci:v00001093d00007076* ++ ID_MODEL_FROM_DATABASE=PCI-6552 ++ ++pci:v00001093d0000707C* ++ ID_MODEL_FROM_DATABASE=PXI-1428 ++ ++pci:v00001093d0000707E* ++ ID_MODEL_FROM_DATABASE=PXI-4462 ++ ++pci:v00001093d00007080* ++ ID_MODEL_FROM_DATABASE=PXI-8430/2 (RS-232) Interface ++ ++pci:v00001093d00007081* ++ ID_MODEL_FROM_DATABASE=PXI-8431/2 (RS-485) Interface ++ + pci:v00001093d00007083* + ID_MODEL_FROM_DATABASE=PCI-7833R + + pci:v00001093d00007085* + ID_MODEL_FROM_DATABASE=PCI-6509 + ++pci:v00001093d00007086* ++ ID_MODEL_FROM_DATABASE=PXI-6528 ++ ++pci:v00001093d00007087* ++ ID_MODEL_FROM_DATABASE=PCI-6515 ++ ++pci:v00001093d00007088* ++ ID_MODEL_FROM_DATABASE=PCI-6514 ++ ++pci:v00001093d0000708C* ++ ID_MODEL_FROM_DATABASE=PXI-2568 ++ ++pci:v00001093d0000708D* ++ ID_MODEL_FROM_DATABASE=PXI-2569 ++ + pci:v00001093d000070A9* +- ID_MODEL_FROM_DATABASE=PCI-6528 (Digital I/O at 60V) ++ ID_MODEL_FROM_DATABASE=PCI-6528 + + pci:v00001093d000070AA* + ID_MODEL_FROM_DATABASE=PCI-6229 +@@ -17633,6 +17912,9 @@ pci:v00001093d000070AB* + pci:v00001093d000070AC* + ID_MODEL_FROM_DATABASE=PCI-6289 + ++pci:v00001093d000070AD* ++ ID_MODEL_FROM_DATABASE=PXI-6251 ++ + pci:v00001093d000070AE* + ID_MODEL_FROM_DATABASE=PXI-6220 + +@@ -17642,9 +17924,21 @@ pci:v00001093d000070AF* + pci:v00001093d000070B0* + ID_MODEL_FROM_DATABASE=PCI-6220 + ++pci:v00001093d000070B1* ++ ID_MODEL_FROM_DATABASE=PXI-6229 ++ ++pci:v00001093d000070B2* ++ ID_MODEL_FROM_DATABASE=PXI-6259 ++ ++pci:v00001093d000070B3* ++ ID_MODEL_FROM_DATABASE=PXI-6289 ++ + pci:v00001093d000070B4* + ID_MODEL_FROM_DATABASE=PCI-6250 + ++pci:v00001093d000070B5* ++ ID_MODEL_FROM_DATABASE=PXI-6221 ++ + pci:v00001093d000070B6* + ID_MODEL_FROM_DATABASE=PCI-6280 + +@@ -17652,7 +17946,16 @@ pci:v00001093d000070B7* + ID_MODEL_FROM_DATABASE=PCI-6254 + + pci:v00001093d000070B8* +- ID_MODEL_FROM_DATABASE=PCI-6251 [M Series - High Speed Multifunction DAQ] ++ ID_MODEL_FROM_DATABASE=PCI-6251 ++ ++pci:v00001093d000070B9* ++ ID_MODEL_FROM_DATABASE=PXI-6250 ++ ++pci:v00001093d000070BA* ++ ID_MODEL_FROM_DATABASE=PXI-6254 ++ ++pci:v00001093d000070BB* ++ ID_MODEL_FROM_DATABASE=PXI-6280 + + pci:v00001093d000070BC* + ID_MODEL_FROM_DATABASE=PCI-6284 +@@ -17660,12 +17963,144 @@ pci:v00001093d000070BC* + pci:v00001093d000070BD* + ID_MODEL_FROM_DATABASE=PCI-6281 + ++pci:v00001093d000070BE* ++ ID_MODEL_FROM_DATABASE=PXI-6284 ++ + pci:v00001093d000070BF* + ID_MODEL_FROM_DATABASE=PXI-6281 + + pci:v00001093d000070C0* + ID_MODEL_FROM_DATABASE=PCI-6143 + ++pci:v00001093d000070C3* ++ ID_MODEL_FROM_DATABASE=PCI-6511 ++ ++pci:v00001093d000070C4* ++ ID_MODEL_FROM_DATABASE=PXI-7330 ++ ++pci:v00001093d000070C5* ++ ID_MODEL_FROM_DATABASE=PXI-7340 ++ ++pci:v00001093d000070C6* ++ ID_MODEL_FROM_DATABASE=PCI-7330 ++ ++pci:v00001093d000070C7* ++ ID_MODEL_FROM_DATABASE=PCI-7340 ++ ++pci:v00001093d000070C8* ++ ID_MODEL_FROM_DATABASE=PCI-6513 ++ ++pci:v00001093d000070C9* ++ ID_MODEL_FROM_DATABASE=PXI-6515 ++ ++pci:v00001093d000070CA* ++ ID_MODEL_FROM_DATABASE=PCI-1405 ++ ++pci:v00001093d000070CC* ++ ID_MODEL_FROM_DATABASE=PCI-6512 ++ ++pci:v00001093d000070CD* ++ ID_MODEL_FROM_DATABASE=PXI-6514 ++ ++pci:v00001093d000070CE* ++ ID_MODEL_FROM_DATABASE=PXI-1405 ++ ++pci:v00001093d000070CF* ++ ID_MODEL_FROM_DATABASE=PCIe-GPIB ++ ++pci:v00001093d000070D0* ++ ID_MODEL_FROM_DATABASE=PXI-2570 ++ ++pci:v00001093d000070D1* ++ ID_MODEL_FROM_DATABASE=PXI-6513 ++ ++pci:v00001093d000070D2* ++ ID_MODEL_FROM_DATABASE=PXI-6512 ++ ++pci:v00001093d000070D3* ++ ID_MODEL_FROM_DATABASE=PXI-6511 ++ ++pci:v00001093d000070D4* ++ ID_MODEL_FROM_DATABASE=PCI-6722 ++ ++pci:v00001093d000070D6* ++ ID_MODEL_FROM_DATABASE=PXI-4072 ++ ++pci:v00001093d000070D7* ++ ID_MODEL_FROM_DATABASE=PXI-6541 ++ ++pci:v00001093d000070D8* ++ ID_MODEL_FROM_DATABASE=PXI-6542 ++ ++pci:v00001093d000070D9* ++ ID_MODEL_FROM_DATABASE=PCI-6541 ++ ++pci:v00001093d000070DA* ++ ID_MODEL_FROM_DATABASE=PCI-6542 ++ ++pci:v00001093d000070DB* ++ ID_MODEL_FROM_DATABASE=PCI-8430/2 (RS-232) Interface ++ ++pci:v00001093d000070DC* ++ ID_MODEL_FROM_DATABASE=PCI-8431/2 (RS-485) Interface ++ ++pci:v00001093d000070DD* ++ ID_MODEL_FROM_DATABASE=PXI-8430/4 (RS-232) Interface ++ ++pci:v00001093d000070DE* ++ ID_MODEL_FROM_DATABASE=PXI-8431/4 (RS-485) Interface ++ ++pci:v00001093d000070DF* ++ ID_MODEL_FROM_DATABASE=PCI-8430/4 (RS-232) Interface ++ ++pci:v00001093d000070E0* ++ ID_MODEL_FROM_DATABASE=PCI-8431/4 (RS-485) Interface ++ ++pci:v00001093d000070E1* ++ ID_MODEL_FROM_DATABASE=PXI-2532 ++ ++pci:v00001093d000070E2* ++ ID_MODEL_FROM_DATABASE=PXI-8430/8 (RS-232) Interface ++ ++pci:v00001093d000070E3* ++ ID_MODEL_FROM_DATABASE=PXI-8431/8 (RS-485) Interface ++ ++pci:v00001093d000070E4* ++ ID_MODEL_FROM_DATABASE=PCI-8430/8 (RS-232) Interface ++ ++pci:v00001093d000070E5* ++ ID_MODEL_FROM_DATABASE=PCI-8431/8 (RS-485) Interface ++ ++pci:v00001093d000070E6* ++ ID_MODEL_FROM_DATABASE=PXI-8430/16 (RS-232) Interface ++ ++pci:v00001093d000070E7* ++ ID_MODEL_FROM_DATABASE=PCI-8430/16 (RS-232) Interface ++ ++pci:v00001093d000070E8* ++ ID_MODEL_FROM_DATABASE=PXI-8432/2 (Isolated RS-232) Interface ++ ++pci:v00001093d000070E9* ++ ID_MODEL_FROM_DATABASE=PXI-8433/2 (Isolated RS-485) Interface ++ ++pci:v00001093d000070EA* ++ ID_MODEL_FROM_DATABASE=PCI-8432/2 (Isolated RS-232) Interface ++ ++pci:v00001093d000070EB* ++ ID_MODEL_FROM_DATABASE=PCI-8433/2 (Isolated RS-485) Interface ++ ++pci:v00001093d000070EC* ++ ID_MODEL_FROM_DATABASE=PXI-8432/4 (Isolated RS-232) Interface ++ ++pci:v00001093d000070ED* ++ ID_MODEL_FROM_DATABASE=PXI-8433/4 (Isolated RS-485) Interface ++ ++pci:v00001093d000070EE* ++ ID_MODEL_FROM_DATABASE=PCI-8432/4 (Isolated RS-232) Interface ++ ++pci:v00001093d000070EF* ++ ID_MODEL_FROM_DATABASE=PCI-8433/4 (Isolated RS-485) Interface ++ + pci:v00001093d000070F0* + ID_MODEL_FROM_DATABASE=PXI-5922 + +@@ -17675,57 +18110,363 @@ pci:v00001093d000070F1* + pci:v00001093d000070F2* + ID_MODEL_FROM_DATABASE=PCI-6224 + ++pci:v00001093d000070F3* ++ ID_MODEL_FROM_DATABASE=PXI-6224 ++ ++pci:v00001093d000070F6* ++ ID_MODEL_FROM_DATABASE=cRIO-9101 ++ ++pci:v00001093d000070F7* ++ ID_MODEL_FROM_DATABASE=cRIO-9103 ++ ++pci:v00001093d000070F8* ++ ID_MODEL_FROM_DATABASE=cRIO-9104 ++ ++pci:v00001093d000070FF* ++ ID_MODEL_FROM_DATABASE=PXI-6723 ++ ++pci:v00001093d00007100* ++ ID_MODEL_FROM_DATABASE=PXI-6722 ++ ++pci:v00001093d00007104* ++ ID_MODEL_FROM_DATABASE=PCIx-1429 ++ ++pci:v00001093d00007105* ++ ID_MODEL_FROM_DATABASE=PCIe-1429 ++ ++pci:v00001093d0000710A* ++ ID_MODEL_FROM_DATABASE=PXI-4071 ++ ++pci:v00001093d0000710D* ++ ID_MODEL_FROM_DATABASE=PXI-6143 ++ ++pci:v00001093d0000710E* ++ ID_MODEL_FROM_DATABASE=PCIe-GPIB ++ ++pci:v00001093d0000710F* ++ ID_MODEL_FROM_DATABASE=PXI-5422 ++ ++pci:v00001093d00007110* ++ ID_MODEL_FROM_DATABASE=PCI-5422 ++ ++pci:v00001093d00007111* ++ ID_MODEL_FROM_DATABASE=PXI-5441 ++ ++pci:v00001093d00007119* ++ ID_MODEL_FROM_DATABASE=PXI-6561 ++ ++pci:v00001093d0000711A* ++ ID_MODEL_FROM_DATABASE=PXI-6562 ++ ++pci:v00001093d0000711B* ++ ID_MODEL_FROM_DATABASE=PCI-6561 ++ ++pci:v00001093d0000711C* ++ ID_MODEL_FROM_DATABASE=PCI-6562 ++ ++pci:v00001093d00007120* ++ ID_MODEL_FROM_DATABASE=PCI-7390 ++ + pci:v00001093d00007121* + ID_MODEL_FROM_DATABASE=PXI-5122EX + + pci:v00001093d00007122* + ID_MODEL_FROM_DATABASE=PCI-5122EX + ++pci:v00001093d00007123* ++ ID_MODEL_FROM_DATABASE=PXIe-5653 ++ ++pci:v00001093d00007124* ++ ID_MODEL_FROM_DATABASE=PCI-6510 ++ ++pci:v00001093d00007125* ++ ID_MODEL_FROM_DATABASE=PCI-6516 ++ ++pci:v00001093d00007126* ++ ID_MODEL_FROM_DATABASE=PCI-6517 ++ ++pci:v00001093d00007127* ++ ID_MODEL_FROM_DATABASE=PCI-6518 ++ ++pci:v00001093d00007128* ++ ID_MODEL_FROM_DATABASE=PCI-6519 ++ ++pci:v00001093d00007137* ++ ID_MODEL_FROM_DATABASE=PXI-2575 ++ ++pci:v00001093d0000713C* ++ ID_MODEL_FROM_DATABASE=PXI-2585 ++ ++pci:v00001093d0000713D* ++ ID_MODEL_FROM_DATABASE=PXI-2586 ++ ++pci:v00001093d00007142* ++ ID_MODEL_FROM_DATABASE=PXI-4224 ++ + pci:v00001093d00007144* +- ID_MODEL_FROM_DATABASE=PXI-5124 (12-bit 200 MS/s Digitizer) ++ ID_MODEL_FROM_DATABASE=PXI-5124 + + pci:v00001093d00007145* + ID_MODEL_FROM_DATABASE=PCI-5124 + ++pci:v00001093d00007146* ++ ID_MODEL_FROM_DATABASE=PCI-6132 ++ ++pci:v00001093d00007147* ++ ID_MODEL_FROM_DATABASE=PXI-6132 ++ ++pci:v00001093d00007148* ++ ID_MODEL_FROM_DATABASE=PCI-6122 ++ ++pci:v00001093d00007149* ++ ID_MODEL_FROM_DATABASE=PXI-6122 ++ + pci:v00001093d0000714C* + ID_MODEL_FROM_DATABASE=PXI-5114 + + pci:v00001093d0000714D* + ID_MODEL_FROM_DATABASE=PCI-5114 + ++pci:v00001093d00007150* ++ ID_MODEL_FROM_DATABASE=PXI-2564 ++ + pci:v00001093d00007152* + ID_MODEL_FROM_DATABASE=PCI-5640R + ++pci:v00001093d00007156* ++ ID_MODEL_FROM_DATABASE=PXI-1044 Trigger Routing Module ++ ++pci:v00001093d0000715D* ++ ID_MODEL_FROM_DATABASE=PCI-1426 ++ ++pci:v00001093d00007167* ++ ID_MODEL_FROM_DATABASE=PXI-5412 ++ ++pci:v00001093d00007168* ++ ID_MODEL_FROM_DATABASE=PCI-5412 ++ ++pci:v00001093d0000716B* ++ ID_MODEL_FROM_DATABASE=PCI-6230 ++ + pci:v00001093d0000716C* + ID_MODEL_FROM_DATABASE=PCI-6225 + ++pci:v00001093d0000716D* ++ ID_MODEL_FROM_DATABASE=PXI-6225 ++ ++pci:v00001093d0000716F* ++ ID_MODEL_FROM_DATABASE=PCI-4461 ++ ++pci:v00001093d00007170* ++ ID_MODEL_FROM_DATABASE=PCI-4462 ++ ++pci:v00001093d00007171* ++ ID_MODEL_FROM_DATABASE=PCI-6010 ++ ++pci:v00001093d00007174* ++ ID_MODEL_FROM_DATABASE=PXI-8360 ++ ++pci:v00001093d00007177* ++ ID_MODEL_FROM_DATABASE=PXI-6230 ++ + pci:v00001093d0000717D* +- ID_MODEL_FROM_DATABASE=PCIE-6251 ++ ID_MODEL_FROM_DATABASE=PCIe-6251 + + pci:v00001093d0000717F* + ID_MODEL_FROM_DATABASE=PCIe-6259 + ++pci:v00001093d00007187* ++ ID_MODEL_FROM_DATABASE=PCI-1410 ++ ++pci:v00001093d0000718B* ++ ID_MODEL_FROM_DATABASE=PCI-6521 ++ ++pci:v00001093d0000718C* ++ ID_MODEL_FROM_DATABASE=PXI-6521 ++ ++pci:v00001093d00007191* ++ ID_MODEL_FROM_DATABASE=PCI-6154 ++ + pci:v00001093d00007193* + ID_MODEL_FROM_DATABASE=PXI-7813R + + pci:v00001093d00007194* + ID_MODEL_FROM_DATABASE=PCI-7813R + ++pci:v00001093d00007195* ++ ID_MODEL_FROM_DATABASE=PCI-8254R ++ ++pci:v00001093d00007197* ++ ID_MODEL_FROM_DATABASE=PXI-5402 ++ ++pci:v00001093d00007198* ++ ID_MODEL_FROM_DATABASE=PCI-5402 ++ ++pci:v00001093d0000719F* ++ ID_MODEL_FROM_DATABASE=PCIe-6535 ++ ++pci:v00001093d000071A0* ++ ID_MODEL_FROM_DATABASE=PCIe-6536 ++ ++pci:v00001093d000071A3* ++ ID_MODEL_FROM_DATABASE=PXI-5650 ++ ++pci:v00001093d000071A4* ++ ID_MODEL_FROM_DATABASE=PXI-5652 ++ ++pci:v00001093d000071A5* ++ ID_MODEL_FROM_DATABASE=PXI-2594 ++ ++pci:v00001093d000071A7* ++ ID_MODEL_FROM_DATABASE=PXI-2595 ++ ++pci:v00001093d000071A9* ++ ID_MODEL_FROM_DATABASE=PXI-2596 ++ ++pci:v00001093d000071AA* ++ ID_MODEL_FROM_DATABASE=PXI-2597 ++ ++pci:v00001093d000071AB* ++ ID_MODEL_FROM_DATABASE=PXI-2598 ++ ++pci:v00001093d000071AC* ++ ID_MODEL_FROM_DATABASE=PXI-2599 ++ ++pci:v00001093d000071AD* ++ ID_MODEL_FROM_DATABASE=PCI-GPIB+ ++ ++pci:v00001093d000071AE* ++ ID_MODEL_FROM_DATABASE=PCIe-1430 ++ ++pci:v00001093d000071B7* ++ ID_MODEL_FROM_DATABASE=PXI-1056 Trigger Routing Module ++ ++pci:v00001093d000071B8* ++ ID_MODEL_FROM_DATABASE=PXI-1045 Trigger Routing Module ++ ++pci:v00001093d000071B9* ++ ID_MODEL_FROM_DATABASE=PXI-1044 Trigger Routing Module ++ ++pci:v00001093d000071BB* ++ ID_MODEL_FROM_DATABASE=PXI-2584 ++ + pci:v00001093d000071BC* +- ID_MODEL_FROM_DATABASE=PCI-6221 (37pin) ++ ID_MODEL_FROM_DATABASE=PCI-6221 (37-pin) + +-pci:v00001093d000071D0* +- ID_MODEL_FROM_DATABASE=PXI-6143 ++pci:v00001093d000071BF* ++ ID_MODEL_FROM_DATABASE=PCIe-1427 ++ ++pci:v00001093d000071C5* ++ ID_MODEL_FROM_DATABASE=PCI-6520 ++ ++pci:v00001093d000071C6* ++ ID_MODEL_FROM_DATABASE=PXI-2576 ++ ++pci:v00001093d000071C7* ++ ID_MODEL_FROM_DATABASE=cRIO-9072 + + pci:v00001093d000071DC* + ID_MODEL_FROM_DATABASE=PCI-1588 + ++pci:v00001093d000071E0* ++ ID_MODEL_FROM_DATABASE=PCI-6255 ++ ++pci:v00001093d000071E1* ++ ID_MODEL_FROM_DATABASE=PXI-6255 ++ ++pci:v00001093d000071E2* ++ ID_MODEL_FROM_DATABASE=PXI-5406 ++ ++pci:v00001093d000071E3* ++ ID_MODEL_FROM_DATABASE=PCI-5406 ++ ++pci:v00001093d000071FC* ++ ID_MODEL_FROM_DATABASE=PXI-4022 ++ ++pci:v00001093d00007209* ++ ID_MODEL_FROM_DATABASE=PCI-6233 ++ ++pci:v00001093d0000720A* ++ ID_MODEL_FROM_DATABASE=PXI-6233 ++ ++pci:v00001093d0000720B* ++ ID_MODEL_FROM_DATABASE=PCI-6238 ++ ++pci:v00001093d0000720C* ++ ID_MODEL_FROM_DATABASE=PXI-6238 ++ + pci:v00001093d00007260* + ID_MODEL_FROM_DATABASE=PXI-5142 + + pci:v00001093d00007261* + ID_MODEL_FROM_DATABASE=PCI-5142 + ++pci:v00001093d0000726D* ++ ID_MODEL_FROM_DATABASE=PXI-5651 ++ ++pci:v00001093d00007273* ++ ID_MODEL_FROM_DATABASE=PXI-4461 ++ ++pci:v00001093d00007274* ++ ID_MODEL_FROM_DATABASE=PXI-4462 ++ ++pci:v00001093d00007279* ++ ID_MODEL_FROM_DATABASE=PCI-6232 ++ ++pci:v00001093d0000727A* ++ ID_MODEL_FROM_DATABASE=PXI-6232 ++ ++pci:v00001093d0000727B* ++ ID_MODEL_FROM_DATABASE=PCI-6239 ++ ++pci:v00001093d0000727C* ++ ID_MODEL_FROM_DATABASE=PXI-6239 ++ ++pci:v00001093d0000727E* ++ ID_MODEL_FROM_DATABASE=SMBus Controller ++ ++pci:v00001093d0000727Esv00001093sd000075AC* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8388) ++ ++pci:v00001093d0000727Esv00001093sd000075AD* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8389) ++ ++pci:v00001093d0000727Esv00001093sd00007650* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8381) ++ ++pci:v00001093d0000727Esv00001093sd00008360* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8360) ++ ++pci:v00001093d0000727Esv00001093sd00008370* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8370) ++ ++pci:v00001093d0000727Esv00001093sd00008375* ++ ID_MODEL_FROM_DATABASE=SMBus Controller (PXIe-8375) ++ ++pci:v00001093d00007281* ++ ID_MODEL_FROM_DATABASE=PCI-6236 ++ ++pci:v00001093d00007282* ++ ID_MODEL_FROM_DATABASE=PXI-6236 ++ ++pci:v00001093d00007283* ++ ID_MODEL_FROM_DATABASE=PXI-2554 ++ ++pci:v00001093d00007288* ++ ID_MODEL_FROM_DATABASE=PXIe-5611 ++ ++pci:v00001093d00007293* ++ ID_MODEL_FROM_DATABASE=PCIe-8255R ++ ++pci:v00001093d0000729D* ++ ID_MODEL_FROM_DATABASE=cRIO-9074 ++ ++pci:v00001093d000072A4* ++ ID_MODEL_FROM_DATABASE=PCIe-4065 ++ ++pci:v00001093d000072A7* ++ ID_MODEL_FROM_DATABASE=PCIe-6537 ++ + pci:v00001093d000072A8* + ID_MODEL_FROM_DATABASE=PXI-5152 + +@@ -17741,21 +18482,117 @@ pci:v00001093d000072AB* + pci:v00001093d000072B8* + ID_MODEL_FROM_DATABASE=PXI-6682 + ++pci:v00001093d000072D0* ++ ID_MODEL_FROM_DATABASE=PXI-2545 ++ ++pci:v00001093d000072D1* ++ ID_MODEL_FROM_DATABASE=PXI-2546 ++ ++pci:v00001093d000072D2* ++ ID_MODEL_FROM_DATABASE=PXI-2547 ++ ++pci:v00001093d000072D3* ++ ID_MODEL_FROM_DATABASE=PXI-2548 ++ ++pci:v00001093d000072D4* ++ ID_MODEL_FROM_DATABASE=PXI-2549 ++ ++pci:v00001093d000072D5* ++ ID_MODEL_FROM_DATABASE=PXI-2555 ++ ++pci:v00001093d000072D6* ++ ID_MODEL_FROM_DATABASE=PXI-2556 ++ ++pci:v00001093d000072D7* ++ ID_MODEL_FROM_DATABASE=PXI-2557 ++ ++pci:v00001093d000072D8* ++ ID_MODEL_FROM_DATABASE=PXI-2558 ++ ++pci:v00001093d000072D9* ++ ID_MODEL_FROM_DATABASE=PXI-2559 ++ ++pci:v00001093d000072E8* ++ ID_MODEL_FROM_DATABASE=PXIe-6251 ++ ++pci:v00001093d000072E9* ++ ID_MODEL_FROM_DATABASE=PXIe-6259 ++ ++pci:v00001093d000072EF* ++ ID_MODEL_FROM_DATABASE=PXI-4498 ++ ++pci:v00001093d000072F0* ++ ID_MODEL_FROM_DATABASE=PXI-4496 ++ ++pci:v00001093d000072FB* ++ ID_MODEL_FROM_DATABASE=PXIe-6672 ++ ++pci:v00001093d0000730E* ++ ID_MODEL_FROM_DATABASE=PXI-4130 ++ + pci:v00001093d0000730F* + ID_MODEL_FROM_DATABASE=PXI-5922EX + + pci:v00001093d00007310* + ID_MODEL_FROM_DATABASE=PCI-5922EX + ++pci:v00001093d0000731C* ++ ID_MODEL_FROM_DATABASE=PXI-2535 ++ ++pci:v00001093d0000731D* ++ ID_MODEL_FROM_DATABASE=PXI-2536 ++ ++pci:v00001093d00007322* ++ ID_MODEL_FROM_DATABASE=PXIe-6124 ++ ++pci:v00001093d00007327* ++ ID_MODEL_FROM_DATABASE=PXI-6529 ++ ++pci:v00001093d00007331* ++ ID_MODEL_FROM_DATABASE=PXIe-5602 ++ ++pci:v00001093d00007332* ++ ID_MODEL_FROM_DATABASE=PXIe-5601 ++ + pci:v00001093d00007333* + ID_MODEL_FROM_DATABASE=PXI-5900 + ++pci:v00001093d00007335* ++ ID_MODEL_FROM_DATABASE=PXI-2533 ++ ++pci:v00001093d00007336* ++ ID_MODEL_FROM_DATABASE=PXI-2534 ++ ++pci:v00001093d00007342* ++ ID_MODEL_FROM_DATABASE=PXI-4461 ++ + pci:v00001093d00007349* + ID_MODEL_FROM_DATABASE=PXI-5154 + + pci:v00001093d0000734A* + ID_MODEL_FROM_DATABASE=PCI-5154 + ++pci:v00001093d00007357* ++ ID_MODEL_FROM_DATABASE=PXI-4065 ++ ++pci:v00001093d00007359* ++ ID_MODEL_FROM_DATABASE=PXI-4495 ++ ++pci:v00001093d00007370* ++ ID_MODEL_FROM_DATABASE=PXI-4461 ++ ++pci:v00001093d00007373* ++ ID_MODEL_FROM_DATABASE=sbRIO-9601 ++ ++pci:v00001093d00007374* ++ ID_MODEL_FROM_DATABASE=IOtech-9601 ++ ++pci:v00001093d00007375* ++ ID_MODEL_FROM_DATABASE=sbRIO-9602 ++ ++pci:v00001093d00007378* ++ ID_MODEL_FROM_DATABASE=sbRIO-9641 ++ + pci:v00001093d0000737D* + ID_MODEL_FROM_DATABASE=PXI-5124EX + +@@ -17786,9 +18623,126 @@ pci:v00001093d00007393* + pci:v00001093d00007394* + ID_MODEL_FROM_DATABASE=PCIe-7842R + ++pci:v00001093d00007397* ++ ID_MODEL_FROM_DATABASE=sbRIO-9611 ++ ++pci:v00001093d00007398* ++ ID_MODEL_FROM_DATABASE=sbRIO-9612 ++ ++pci:v00001093d00007399* ++ ID_MODEL_FROM_DATABASE=sbRIO-9631 ++ ++pci:v00001093d0000739A* ++ ID_MODEL_FROM_DATABASE=sbRIO-9632 ++ ++pci:v00001093d0000739B* ++ ID_MODEL_FROM_DATABASE=sbRIO-9642 ++ ++pci:v00001093d000073A1* ++ ID_MODEL_FROM_DATABASE=PXIe-4498 ++ ++pci:v00001093d000073A2* ++ ID_MODEL_FROM_DATABASE=PXIe-4496 ++ + pci:v00001093d000073A5* + ID_MODEL_FROM_DATABASE=PXIe-5641R + ++pci:v00001093d000073A7* ++ ID_MODEL_FROM_DATABASE=PXI-8250 Chassis Monitor Module ++ ++pci:v00001093d000073A8* ++ ID_MODEL_FROM_DATABASE=PXI-8511 CAN/LS ++ ++pci:v00001093d000073A9* ++ ID_MODEL_FROM_DATABASE=PXI-8511 CAN/LS ++ ++pci:v00001093d000073AA* ++ ID_MODEL_FROM_DATABASE=PXI-8512 CAN/HS ++ ++pci:v00001093d000073AB* ++ ID_MODEL_FROM_DATABASE=PXI-8512 CAN/HS ++ ++pci:v00001093d000073AC* ++ ID_MODEL_FROM_DATABASE=PXI-8513 CAN/XS ++ ++pci:v00001093d000073AD* ++ ID_MODEL_FROM_DATABASE=PXI-8513 CAN/XS ++ ++pci:v00001093d000073AF* ++ ID_MODEL_FROM_DATABASE=PXI-8516 LIN ++ ++pci:v00001093d000073B1* ++ ID_MODEL_FROM_DATABASE=PXI-8517 FlexRay ++ ++pci:v00001093d000073B2* ++ ID_MODEL_FROM_DATABASE=PXI-8531 CANopen ++ ++pci:v00001093d000073B3* ++ ID_MODEL_FROM_DATABASE=PXI-8531 CANopen ++ ++pci:v00001093d000073B4* ++ ID_MODEL_FROM_DATABASE=PXI-8532 DeviceNet ++ ++pci:v00001093d000073B5* ++ ID_MODEL_FROM_DATABASE=PXI-8532 DeviceNet ++ ++pci:v00001093d000073B6* ++ ID_MODEL_FROM_DATABASE=PCI-8511 CAN/LS ++ ++pci:v00001093d000073B7* ++ ID_MODEL_FROM_DATABASE=PCI-8511 CAN/LS ++ ++pci:v00001093d000073B8* ++ ID_MODEL_FROM_DATABASE=PCI-8512 CAN/HS ++ ++pci:v00001093d000073B9* ++ ID_MODEL_FROM_DATABASE=PCI-8512 CAN/HS ++ ++pci:v00001093d000073BA* ++ ID_MODEL_FROM_DATABASE=PCI-8513 CAN/XS ++ ++pci:v00001093d000073BB* ++ ID_MODEL_FROM_DATABASE=PCI-8513 CAN/XS ++ ++pci:v00001093d000073BD* ++ ID_MODEL_FROM_DATABASE=PCI-8516 LIN ++ ++pci:v00001093d000073BF* ++ ID_MODEL_FROM_DATABASE=PCI-8517 FlexRay ++ ++pci:v00001093d000073C0* ++ ID_MODEL_FROM_DATABASE=PCI-8531 CANopen ++ ++pci:v00001093d000073C1* ++ ID_MODEL_FROM_DATABASE=PCI-8531 CANopen ++ ++pci:v00001093d000073C2* ++ ID_MODEL_FROM_DATABASE=PCI-8532 DeviceNet ++ ++pci:v00001093d000073C3* ++ ID_MODEL_FROM_DATABASE=PCI-8532 DeviceNet ++ ++pci:v00001093d000073C5* ++ ID_MODEL_FROM_DATABASE=PXIe-2527 ++ ++pci:v00001093d000073C6* ++ ID_MODEL_FROM_DATABASE=PXIe-2529 ++ ++pci:v00001093d000073C8* ++ ID_MODEL_FROM_DATABASE=PXIe-2530 ++ ++pci:v00001093d000073C9* ++ ID_MODEL_FROM_DATABASE=PXIe-2532 ++ ++pci:v00001093d000073CA* ++ ID_MODEL_FROM_DATABASE=PXIe-2569 ++ ++pci:v00001093d000073CB* ++ ID_MODEL_FROM_DATABASE=PXIe-2575 ++ ++pci:v00001093d000073CC* ++ ID_MODEL_FROM_DATABASE=PXIe-2593 ++ + pci:v00001093d000073D5* + ID_MODEL_FROM_DATABASE=PXI-7951R + +@@ -17804,15 +18758,87 @@ pci:v00001093d000073E1* + pci:v00001093d000073EC* + ID_MODEL_FROM_DATABASE=PXI-7954R + ++pci:v00001093d000073ED* ++ ID_MODEL_FROM_DATABASE=cRIO-9073 ++ + pci:v00001093d000073F0* + ID_MODEL_FROM_DATABASE=PXI-5153 + + pci:v00001093d000073F1* + ID_MODEL_FROM_DATABASE=PCI-5153 + ++pci:v00001093d000073F4* ++ ID_MODEL_FROM_DATABASE=PXI-2515 ++ ++pci:v00001093d000073F6* ++ ID_MODEL_FROM_DATABASE=cRIO-9111 ++ ++pci:v00001093d000073F7* ++ ID_MODEL_FROM_DATABASE=cRIO-9112 ++ ++pci:v00001093d000073F8* ++ ID_MODEL_FROM_DATABASE=cRIO-9113 ++ ++pci:v00001093d000073F9* ++ ID_MODEL_FROM_DATABASE=cRIO-9114 ++ ++pci:v00001093d000073FA* ++ ID_MODEL_FROM_DATABASE=cRIO-9116 ++ ++pci:v00001093d000073FB* ++ ID_MODEL_FROM_DATABASE=cRIO-9118 ++ ++pci:v00001093d00007404* ++ ID_MODEL_FROM_DATABASE=PXI-4132 ++ + pci:v00001093d00007405* + ID_MODEL_FROM_DATABASE=PXIe-6674T + ++pci:v00001093d00007406* ++ ID_MODEL_FROM_DATABASE=PXIe-6674 ++ ++pci:v00001093d0000740E* ++ ID_MODEL_FROM_DATABASE=PCIe-8430/16 (RS-232) Interface ++ ++pci:v00001093d0000740F* ++ ID_MODEL_FROM_DATABASE=PCIe-8430/8 (RS-232) Interface ++ ++pci:v00001093d00007410* ++ ID_MODEL_FROM_DATABASE=PCIe-8431/16 (RS-485) Interface ++ ++pci:v00001093d00007411* ++ ID_MODEL_FROM_DATABASE=PCIe-8431/8 (RS-485) Interface ++ ++pci:v00001093d00007414* ++ ID_MODEL_FROM_DATABASE=PCIe-GPIB+ ++ ++pci:v00001093d0000741C* ++ ID_MODEL_FROM_DATABASE=PXI-5691 ++ ++pci:v00001093d0000741D* ++ ID_MODEL_FROM_DATABASE=PXI-5695 ++ ++pci:v00001093d0000743C* ++ ID_MODEL_FROM_DATABASE=CSC-3059 ++ ++pci:v00001093d00007448* ++ ID_MODEL_FROM_DATABASE=PXI-2510 ++ ++pci:v00001093d00007454* ++ ID_MODEL_FROM_DATABASE=PXI-2512 ++ ++pci:v00001093d00007455* ++ ID_MODEL_FROM_DATABASE=PXI-2514 ++ ++pci:v00001093d00007456* ++ ID_MODEL_FROM_DATABASE=PXIe-2512 ++ ++pci:v00001093d00007457* ++ ID_MODEL_FROM_DATABASE=PXIe-2514 ++ ++pci:v00001093d0000745A* ++ ID_MODEL_FROM_DATABASE=PXI-6682H ++ + pci:v00001093d0000745E* + ID_MODEL_FROM_DATABASE=PXI-5153EX + +@@ -17825,86 +18851,740 @@ pci:v00001093d00007460* + pci:v00001093d00007461* + ID_MODEL_FROM_DATABASE=PCI-5154EX + ++pci:v00001093d0000746D* ++ ID_MODEL_FROM_DATABASE=PXIe-5650 ++ ++pci:v00001093d0000746E* ++ ID_MODEL_FROM_DATABASE=PXIe-5651 ++ ++pci:v00001093d0000746F* ++ ID_MODEL_FROM_DATABASE=PXIe-5652 ++ ++pci:v00001093d00007472* ++ ID_MODEL_FROM_DATABASE=PXI-2800 ++ ++pci:v00001093d00007495* ++ ID_MODEL_FROM_DATABASE=PXIe-5603 ++ ++pci:v00001093d00007497* ++ ID_MODEL_FROM_DATABASE=PXIe-5605 ++ ++pci:v00001093d000074AE* ++ ID_MODEL_FROM_DATABASE=PXIe-2515 ++ ++pci:v00001093d000074B4* ++ ID_MODEL_FROM_DATABASE=PXI-2531 ++ ++pci:v00001093d000074B5* ++ ID_MODEL_FROM_DATABASE=PXIe-2531 ++ ++pci:v00001093d000074C1* ++ ID_MODEL_FROM_DATABASE=PXIe-8430/16 (RS-232) Interface ++ ++pci:v00001093d000074C2* ++ ID_MODEL_FROM_DATABASE=PXIe-8430/8 (RS-232) Interface ++ ++pci:v00001093d000074C3* ++ ID_MODEL_FROM_DATABASE=PXIe-8431/16 (RS-485) Interface ++ ++pci:v00001093d000074C4* ++ ID_MODEL_FROM_DATABASE=PXIe-8431/8 (RS-485) Interface ++ ++pci:v00001093d000074D5* ++ ID_MODEL_FROM_DATABASE=PXIe-5630 ++ ++pci:v00001093d000074D9* ++ ID_MODEL_FROM_DATABASE=PCIe-8432/2 (Isolated RS-232) Interface ++ ++pci:v00001093d000074DA* ++ ID_MODEL_FROM_DATABASE=PCIe-8433/2 (Isolated RS-485) Interface ++ ++pci:v00001093d000074DB* ++ ID_MODEL_FROM_DATABASE=PCIe-8432/4 (Isolated RS-232) Interface ++ ++pci:v00001093d000074DC* ++ ID_MODEL_FROM_DATABASE=PCIe-8433/4 (Isolated RS-485) Interface ++ ++pci:v00001093d000074E8* ++ ID_MODEL_FROM_DATABASE=NI 9148 ++ ++pci:v00001093d00007515* ++ ID_MODEL_FROM_DATABASE=PCIe-8430/2 (RS-232) Interface ++ ++pci:v00001093d00007516* ++ ID_MODEL_FROM_DATABASE=PCIe-8430/4 (RS-232) Interface ++ ++pci:v00001093d00007517* ++ ID_MODEL_FROM_DATABASE=PCIe-8431/2 (RS-485) Interface ++ ++pci:v00001093d00007518* ++ ID_MODEL_FROM_DATABASE=PCIe-8431/4 (RS-485) Interface ++ ++pci:v00001093d0000751B* ++ ID_MODEL_FROM_DATABASE=cRIO-9081 ++ ++pci:v00001093d0000751C* ++ ID_MODEL_FROM_DATABASE=cRIO-9082 ++ ++pci:v00001093d00007528* ++ ID_MODEL_FROM_DATABASE=PXIe-4497 ++ ++pci:v00001093d00007529* ++ ID_MODEL_FROM_DATABASE=PXIe-4499 ++ ++pci:v00001093d0000752A* ++ ID_MODEL_FROM_DATABASE=PXIe-4492 ++ + pci:v00001093d00007539* + ID_MODEL_FROM_DATABASE=NI 9157 + + pci:v00001093d0000753A* + ID_MODEL_FROM_DATABASE=NI 9159 + ++pci:v00001093d00007598* ++ ID_MODEL_FROM_DATABASE=PXI-2571 ++ ++pci:v00001093d000075A4* ++ ID_MODEL_FROM_DATABASE=PXI-4131A ++ ++pci:v00001093d000075B1* ++ ID_MODEL_FROM_DATABASE=PCIe-7854R ++ ++pci:v00001093d000075BA* ++ ID_MODEL_FROM_DATABASE=PXI-2543 ++ ++pci:v00001093d000075BB* ++ ID_MODEL_FROM_DATABASE=PXIe-2543 ++ + pci:v00001093d000075E5* + ID_MODEL_FROM_DATABASE=PXI-6683 + + pci:v00001093d000075E6* + ID_MODEL_FROM_DATABASE=PXI-6683H + ++pci:v00001093d000075EF* ++ ID_MODEL_FROM_DATABASE=PXIe-5632 ++ ++pci:v00001093d0000761F* ++ ID_MODEL_FROM_DATABASE=PXI-2540 ++ ++pci:v00001093d00007620* ++ ID_MODEL_FROM_DATABASE=PXIe-2540 ++ ++pci:v00001093d00007621* ++ ID_MODEL_FROM_DATABASE=PXI-2541 ++ ++pci:v00001093d00007622* ++ ID_MODEL_FROM_DATABASE=PXIe-2541 ++ + pci:v00001093d00007626* + ID_MODEL_FROM_DATABASE=NI 9154 + + pci:v00001093d00007627* + ID_MODEL_FROM_DATABASE=NI 9155 + ++pci:v00001093d00007638* ++ ID_MODEL_FROM_DATABASE=PXI-2720 ++ ++pci:v00001093d00007639* ++ ID_MODEL_FROM_DATABASE=PXI-2722 ++ ++pci:v00001093d0000763A* ++ ID_MODEL_FROM_DATABASE=PXIe-2725 ++ ++pci:v00001093d0000763B* ++ ID_MODEL_FROM_DATABASE=PXIe-2727 ++ ++pci:v00001093d0000763C* ++ ID_MODEL_FROM_DATABASE=PXI-4465 ++ ++pci:v00001093d0000764B* ++ ID_MODEL_FROM_DATABASE=PXIe-2790 ++ ++pci:v00001093d0000764C* ++ ID_MODEL_FROM_DATABASE=PXI-2520 ++ ++pci:v00001093d0000764D* ++ ID_MODEL_FROM_DATABASE=PXI-2521 ++ ++pci:v00001093d0000764E* ++ ID_MODEL_FROM_DATABASE=PXI-2522 ++ ++pci:v00001093d0000764F* ++ ID_MODEL_FROM_DATABASE=PXI-2523 ++ ++pci:v00001093d00007654* ++ ID_MODEL_FROM_DATABASE=PXI-2796 ++ ++pci:v00001093d00007655* ++ ID_MODEL_FROM_DATABASE=PXI-2797 ++ ++pci:v00001093d00007656* ++ ID_MODEL_FROM_DATABASE=PXI-2798 ++ ++pci:v00001093d00007657* ++ ID_MODEL_FROM_DATABASE=PXI-2799 ++ ++pci:v00001093d0000765D* ++ ID_MODEL_FROM_DATABASE=PXI-2542 ++ ++pci:v00001093d0000765E* ++ ID_MODEL_FROM_DATABASE=PXIe-2542 ++ ++pci:v00001093d0000765F* ++ ID_MODEL_FROM_DATABASE=PXI-2544 ++ ++pci:v00001093d00007660* ++ ID_MODEL_FROM_DATABASE=PXIe-2544 ++ ++pci:v00001093d0000766D* ++ ID_MODEL_FROM_DATABASE=PCIe-6535B ++ ++pci:v00001093d0000766E* ++ ID_MODEL_FROM_DATABASE=PCIe-6536B ++ ++pci:v00001093d0000766F* ++ ID_MODEL_FROM_DATABASE=PCIe-6537B ++ ++pci:v00001093d000076A3* ++ ID_MODEL_FROM_DATABASE=PXIe-6535B ++ ++pci:v00001093d000076A4* ++ ID_MODEL_FROM_DATABASE=PXIe-6536B ++ ++pci:v00001093d000076A5* ++ ID_MODEL_FROM_DATABASE=PXIe-6537B ++ ++pci:v00001093d00009020* ++ ID_MODEL_FROM_DATABASE=PXI-2501 ++ ++pci:v00001093d00009030* ++ ID_MODEL_FROM_DATABASE=PXI-2503 ++ ++pci:v00001093d00009040* ++ ID_MODEL_FROM_DATABASE=PXI-2527 ++ ++pci:v00001093d00009050* ++ ID_MODEL_FROM_DATABASE=PXI-2565 ++ ++pci:v00001093d00009060* ++ ID_MODEL_FROM_DATABASE=PXI-2590 ++ ++pci:v00001093d00009070* ++ ID_MODEL_FROM_DATABASE=PXI-2591 ++ ++pci:v00001093d00009080* ++ ID_MODEL_FROM_DATABASE=PXI-2580 ++ ++pci:v00001093d00009090* ++ ID_MODEL_FROM_DATABASE=PCI-4021 ++ ++pci:v00001093d000090A0* ++ ID_MODEL_FROM_DATABASE=PXI-4021 ++ + pci:v00001093d0000B001* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1408 ++ ID_MODEL_FROM_DATABASE=PCI-1408 + + pci:v00001093d0000B011* +- ID_MODEL_FROM_DATABASE=IMAQ-PXI-1408 ++ ID_MODEL_FROM_DATABASE=PXI-1408 + + pci:v00001093d0000B021* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1424 ++ ID_MODEL_FROM_DATABASE=PCI-1424 ++ ++pci:v00001093d0000B022* ++ ID_MODEL_FROM_DATABASE=PXI-1424 + + pci:v00001093d0000B031* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1413 ++ ID_MODEL_FROM_DATABASE=PCI-1413 + + pci:v00001093d0000B041* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1407 ++ ID_MODEL_FROM_DATABASE=PCI-1407 + + pci:v00001093d0000B051* +- ID_MODEL_FROM_DATABASE=IMAQ-PXI-1407 ++ ID_MODEL_FROM_DATABASE=PXI-1407 + + pci:v00001093d0000B061* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1411 ++ ID_MODEL_FROM_DATABASE=PCI-1411 + + pci:v00001093d0000B071* +- ID_MODEL_FROM_DATABASE=IMAQ-PCI-1422 ++ ID_MODEL_FROM_DATABASE=PCI-1422 + + pci:v00001093d0000B081* +- ID_MODEL_FROM_DATABASE=IMAQ-PXI-1422 ++ ID_MODEL_FROM_DATABASE=PXI-1422 + + pci:v00001093d0000B091* +- ID_MODEL_FROM_DATABASE=IMAQ-PXI-1411 ++ ID_MODEL_FROM_DATABASE=PXI-1411 ++ ++pci:v00001093d0000B0B1* ++ ID_MODEL_FROM_DATABASE=PCI-1409 ++ ++pci:v00001093d0000B0C1* ++ ID_MODEL_FROM_DATABASE=PXI-1409 ++ ++pci:v00001093d0000B0E1* ++ ID_MODEL_FROM_DATABASE=PCI-1428 + + pci:v00001093d0000C4C4* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device + ++pci:v00001093d0000C4C4sv00001093sd0000728A* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5421) ++ ++pci:v00001093d0000C4C4sv00001093sd0000728B* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5442) ++ ++pci:v00001093d0000C4C4sv00001093sd0000728D* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5451) ++ ++pci:v00001093d0000C4C4sv00001093sd000072A2* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5122) ++ ++pci:v00001093d0000C4C4sv00001093sd000072DA* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5422) ++ ++pci:v00001093d0000C4C4sv00001093sd000072F7* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6535) ++ ++pci:v00001093d0000C4C4sv00001093sd000072F8* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6536) ++ ++pci:v00001093d0000C4C4sv00001093sd000072F9* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6537) ++ ++pci:v00001093d0000C4C4sv00001093sd00007326* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6509) ++ ++pci:v00001093d0000C4C4sv00001093sd0000736C* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4140) ++ ++pci:v00001093d0000C4C4sv00001093sd0000738B* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5622) ++ ++pci:v00001093d0000C4C4sv00001093sd000073C4* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5450) ++ ++pci:v00001093d0000C4C4sv00001093sd000073C7* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6545) ++ ++pci:v00001093d0000C4C4sv00001093sd000073D4* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6544) ++ ++pci:v00001093d0000C4C4sv00001093sd00007425* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6320) ++ ++pci:v00001093d0000C4C4sv00001093sd00007427* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6321) ++ ++pci:v00001093d0000C4C4sv00001093sd00007428* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6323) ++ ++pci:v00001093d0000C4C4sv00001093sd00007429* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6323) ++ ++pci:v00001093d0000C4C4sv00001093sd0000742A* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6341) ++ ++pci:v00001093d0000C4C4sv00001093sd0000742B* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6341) ++ ++pci:v00001093d0000C4C4sv00001093sd0000742C* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6343) ++ ++pci:v00001093d0000C4C4sv00001093sd0000742D* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6343) ++ ++pci:v00001093d0000C4C4sv00001093sd0000742F* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6351) ++ ++pci:v00001093d0000C4C4sv00001093sd00007431* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6353) ++ ++pci:v00001093d0000C4C4sv00001093sd00007432* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6361) ++ ++pci:v00001093d0000C4C4sv00001093sd00007433* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6361) ++ ++pci:v00001093d0000C4C4sv00001093sd00007434* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6363) ++ ++pci:v00001093d0000C4C4sv00001093sd00007435* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6363) ++ ++pci:v00001093d0000C4C4sv00001093sd00007436* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6356) ++ ++pci:v00001093d0000C4C4sv00001093sd00007437* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6358) ++ ++pci:v00001093d0000C4C4sv00001093sd00007438* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6366) ++ ++pci:v00001093d0000C4C4sv00001093sd00007439* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6368) ++ ++pci:v00001093d0000C4C4sv00001093sd00007468* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5185) ++ ++pci:v00001093d0000C4C4sv00001093sd00007469* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5186) ++ ++pci:v00001093d0000C4C4sv00001093sd00007492* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4300) ++ ++pci:v00001093d0000C4C4sv00001093sd00007498* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6548) ++ ++pci:v00001093d0000C4C4sv00001093sd00007499* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6547) ++ ++pci:v00001093d0000C4C4sv00001093sd000074A8* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4330) ++ ++pci:v00001093d0000C4C4sv00001093sd000074A9* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4331) ++ ++pci:v00001093d0000C4C4sv00001093sd000074B1* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4154) ++ + pci:v00001093d0000C4C4sv00001093sd000074B2* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4353) + ++pci:v00001093d0000C4C4sv00001093sd000074B6* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1433) ++ ++pci:v00001093d0000C4C4sv00001093sd000074CD* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5643R) ++ + pci:v00001093d0000C4C4sv00001093sd000074D0* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7961R) + ++pci:v00001093d0000C4C4sv00001093sd000074DD* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6376) ++ ++pci:v00001093d0000C4C4sv00001093sd000074DE* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6378) ++ + pci:v00001093d0000C4C4sv00001093sd000074E2* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7962R) + + pci:v00001093d0000C4C4sv00001093sd000074E3* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7965R) + ++pci:v00001093d0000C4C4sv00001093sd000074E5* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4844) ++ ++pci:v00001093d0000C4C4sv00001093sd000074F3* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-5140) ++ ++pci:v00001093d0000C4C4sv00001093sd0000753C* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-1435) ++ ++pci:v00001093d0000C4C4sv00001093sd00007548* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5622 (25MHz DDC)) ++ ++pci:v00001093d0000C4C4sv00001093sd0000754D* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-5155) ++ ++pci:v00001093d0000C4C4sv00001093sd00007551* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6556) ++ + pci:v00001093d0000C4C4sv00001093sd00007553* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R) + ++pci:v00001093d0000C4C4sv00001093sd00007570* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1474R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007571* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-1475R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007572* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-1476R) ++ ++pci:v00001093d0000C4C4sv00001093sd000075A2* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5693) ++ ++pci:v00001093d0000C4C4sv00001093sd000075A3* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5694) ++ ++pci:v00001093d0000C4C4sv00001093sd000075A5* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4141) ++ + pci:v00001093d0000C4C4sv00001093sd000075CE* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7966R) + ++pci:v00001093d0000C4C4sv00001093sd000075CF* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4357) ++ ++pci:v00001093d0000C4C4sv00001093sd000075D2* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-RevB-5643R) ++ ++pci:v00001093d0000C4C4sv00001093sd000075D3* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5644R) ++ ++pci:v00001093d0000C4C4sv00001093sd000075EE* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5645R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007613* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6555) ++ ++pci:v00001093d0000C4C4sv00001093sd00007619* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5185) ++ ++pci:v00001093d0000C4C4sv00001093sd0000761A* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5186) ++ ++pci:v00001093d0000C4C4sv00001093sd00007629* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4142) ++ ++pci:v00001093d0000C4C4sv00001093sd0000762A* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4143) ++ ++pci:v00001093d0000C4C4sv00001093sd0000762B* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4138) ++ ++pci:v00001093d0000C4C4sv00001093sd0000762C* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4144) ++ ++pci:v00001093d0000C4C4sv00001093sd0000762D* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4145) ++ ++pci:v00001093d0000C4C4sv00001093sd00007644* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4841) ++ ++pci:v00001093d0000C4C4sv00001093sd00007658* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5162 (4CH)) ++ ++pci:v00001093d0000C4C4sv00001093sd000076AB* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4322) ++ ++pci:v00001093d0000C4C4sv00001093sd000076AD* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4112) ++ ++pci:v00001093d0000C4C4sv00001093sd000076AE* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4113) ++ ++pci:v00001093d0000C4C4sv00001093sd000076B5* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7971R) ++ ++pci:v00001093d0000C4C4sv00001093sd000076B6* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7972R) ++ + pci:v00001093d0000C4C4sv00001093sd000076B7* + ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7975R) + ++pci:v00001093d0000C4C4sv00001093sd000076C8* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6614) ++ ++pci:v00001093d0000C4C4sv00001093sd000076C9* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6612) ++ ++pci:v00001093d0000C4C4sv00001093sd000076CB* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5646R) ++ ++pci:v00001093d0000C4C4sv00001093sd000076CC* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5162 (2CH)) ++ + pci:v00001093d0000C4C4sv00001093sd000076D0* +- ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160) ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160 (2CH)) ++ ++pci:v00001093d0000C4C4sv00001093sd000076D1* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5160 (4CH)) ++ ++pci:v00001093d0000C4C4sv00001093sd000076DC* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4610) ++ ++pci:v00001093d0000C4C4sv00001093sd000076FB* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-1473R-LX110) ++ ++pci:v00001093d0000C4C4sv00001093sd000076FE* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5644R) ++ ++pci:v00001093d0000C4C4sv00001093sd000076FF* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5644R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007700* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5644R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007701* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5645R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007702* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5645R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007703* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5645R) ++ ++pci:v00001093d0000C4C4sv00001093sd0000770C* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4139) ++ ++pci:v00001093d0000C4C4sv00001093sd00007711* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4464) ++ ++pci:v00001093d0000C4C4sv00001093sd00007716* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PCIe-6612) ++ ++pci:v00001093d0000C4C4sv00001093sd0000771E* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-4339) ++ ++pci:v00001093d0000C4C4sv00001093sd00007735* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (cRIO-9033) ++ ++pci:v00001093d0000C4C4sv00001093sd0000774B* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (cRIO-9031) ++ ++pci:v00001093d0000C4C4sv00001093sd0000774D* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (cRIO-9034) ++ ++pci:v00001093d0000C4C4sv00001093sd00007755* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (cRIO-9030) ++ ++pci:v00001093d0000C4C4sv00001093sd00007777* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7976R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007782* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5646R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007783* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5646R) ++ ++pci:v00001093d0000C4C4sv00001093sd00007784* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-5646R) ++ ++pci:v00001093d0000C4C4sv00001093sd000077A5* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6345) ++ ++pci:v00001093d0000C4C4sv00001093sd000077A6* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6355) ++ ++pci:v00001093d0000C4C4sv00001093sd000077A7* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6365) ++ ++pci:v00001093d0000C4C4sv00001093sd000077A8* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-6375) ++ ++pci:v00001093d0000C4C4sv00001093sd000077B4* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7820R) ++ ++pci:v00001093d0000C4C4sv00001093sd000077B5* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7821R) ++ ++pci:v00001093d0000C4C4sv00001093sd000077B6* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (PXIe-7822R) ++ ++pci:v00001093d0000C4C4sv00001093sd000077B9* ++ ID_MODEL_FROM_DATABASE=PXIe/PCIe Device (cRIO-9038) + + pci:v00001093d0000C801* + ID_MODEL_FROM_DATABASE=PCI-GPIB + ++pci:v00001093d0000C811* ++ ID_MODEL_FROM_DATABASE=PCI-GPIB+ ++ ++pci:v00001093d0000C821* ++ ID_MODEL_FROM_DATABASE=PXI-GPIB ++ + pci:v00001093d0000C831* +- ID_MODEL_FROM_DATABASE=PCI-GPIB bridge ++ ID_MODEL_FROM_DATABASE=PMC-GPIB ++ ++pci:v00001093d0000C840* ++ ID_MODEL_FROM_DATABASE=PCI-GPIB ++ ++pci:v00001093d0000D130* ++ ID_MODEL_FROM_DATABASE=PCI-232/2 Interface ++ ++pci:v00001093d0000D140* ++ ID_MODEL_FROM_DATABASE=PCI-232/4 Interface ++ ++pci:v00001093d0000D150* ++ ID_MODEL_FROM_DATABASE=PCI-232/8 Interface ++ ++pci:v00001093d0000D160* ++ ID_MODEL_FROM_DATABASE=PCI-485/2 Interface ++ ++pci:v00001093d0000D170* ++ ID_MODEL_FROM_DATABASE=PCI-485/4 Interface ++ ++pci:v00001093d0000D190* ++ ID_MODEL_FROM_DATABASE=PXI-8422/2 (Isolated RS-232) Interface ++ ++pci:v00001093d0000D1A0* ++ ID_MODEL_FROM_DATABASE=PXI-8422/4 (Isolated RS-232) Interface ++ ++pci:v00001093d0000D1B0* ++ ID_MODEL_FROM_DATABASE=PXI-8423/2 (Isolated RS-485) Interface ++ ++pci:v00001093d0000D1C0* ++ ID_MODEL_FROM_DATABASE=PXI-8423/4 (Isolated RS-485) Interface ++ ++pci:v00001093d0000D1D0* ++ ID_MODEL_FROM_DATABASE=PXI-8420/2 (RS-232) Interface ++ ++pci:v00001093d0000D1E0* ++ ID_MODEL_FROM_DATABASE=PXI-8420/4 (RS-232) Interface ++ ++pci:v00001093d0000D1F0* ++ ID_MODEL_FROM_DATABASE=PXI-8420/8 (RS-232) Interface ++ ++pci:v00001093d0000D1F1* ++ ID_MODEL_FROM_DATABASE=PXI-8420/16 (RS-232) Interface ++ ++pci:v00001093d0000D230* ++ ID_MODEL_FROM_DATABASE=PXI-8421/2 (RS-485) Interface ++ ++pci:v00001093d0000D240* ++ ID_MODEL_FROM_DATABASE=PXI-8421/4 (RS-485) Interface ++ ++pci:v00001093d0000D250* ++ ID_MODEL_FROM_DATABASE=PCI-232/2 (Isolated) Interface ++ ++pci:v00001093d0000D260* ++ ID_MODEL_FROM_DATABASE=PCI-485/2 (Isolated) Interface ++ ++pci:v00001093d0000D270* ++ ID_MODEL_FROM_DATABASE=PCI-232/4 (Isolated) Interface ++ ++pci:v00001093d0000D280* ++ ID_MODEL_FROM_DATABASE=PCI-485/4 (Isolated) Interface ++ ++pci:v00001093d0000D290* ++ ID_MODEL_FROM_DATABASE=PCI-485/8 Interface ++ ++pci:v00001093d0000D2A0* ++ ID_MODEL_FROM_DATABASE=PXI-8421/8 (RS-485) Interface ++ ++pci:v00001093d0000D2B0* ++ ID_MODEL_FROM_DATABASE=PCI-232/16 Interface ++ ++pci:v00001093d0000E111* ++ ID_MODEL_FROM_DATABASE=PCI-CAN ++ ++pci:v00001093d0000E131* ++ ID_MODEL_FROM_DATABASE=PXI-8461 (1 port) ++ ++pci:v00001093d0000E141* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/LS ++ ++pci:v00001093d0000E151* ++ ID_MODEL_FROM_DATABASE=PXI-8460 (1 port) ++ ++pci:v00001093d0000E211* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/2 ++ ++pci:v00001093d0000E231* ++ ID_MODEL_FROM_DATABASE=PXI-8461 (2 ports) ++ ++pci:v00001093d0000E241* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/LS2 ++ ++pci:v00001093d0000E251* ++ ID_MODEL_FROM_DATABASE=PXI-8460 (2 ports) ++ ++pci:v00001093d0000E261* ++ ID_MODEL_FROM_DATABASE=PCI-CAN/DS ++ ++pci:v00001093d0000E271* ++ ID_MODEL_FROM_DATABASE=PXI-8462 + + pci:v00001094* + ID_VENDOR_FROM_DATABASE=First International Computers [FIC] +@@ -23331,16 +25011,16 @@ pci:v000010DEd00000367* + ID_MODEL_FROM_DATABASE=MCP55 LPC Bridge + + pci:v000010DEd00000368* +- ID_MODEL_FROM_DATABASE=MCP55 SMBus ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus Controller + + pci:v000010DEd00000368sv00001028sd0000020C* +- ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge M605 MCP55 SMBus) ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus Controller (PowerEdge M605 MCP55 SMBus) + + pci:v000010DEd00000368sv00001028sd00000221* +- ID_MODEL_FROM_DATABASE=MCP55 SMBus (PowerEdge R805 MCP55 SMBus) ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus Controller (PowerEdge R805 MCP55 SMBus) + + pci:v000010DEd00000368sv0000147Bsd00001C24* +- ID_MODEL_FROM_DATABASE=MCP55 SMBus (KN9 series mainboard) ++ ID_MODEL_FROM_DATABASE=MCP55 SMBus Controller (KN9 series mainboard) + + pci:v000010DEd00000369* + ID_MODEL_FROM_DATABASE=MCP55 Memory Controller +@@ -24530,6 +26210,9 @@ pci:v000010DEd00000641* + pci:v000010DEd00000641sv00001682sd00004009* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9400 GT] (PV-T94G-ZAFG) + ++pci:v000010DEd00000642* ++ ID_MODEL_FROM_DATABASE=G96 [D9M-10] ++ + pci:v000010DEd00000643* + ID_MODEL_FROM_DATABASE=G96 [GeForce 9500 GT] + +@@ -26522,6 +28205,9 @@ pci:v000010DEd0000100A* + pci:v000010DEd0000100C* + ID_MODEL_FROM_DATABASE=GK110B [GeForce GTX Titan Black] + ++pci:v000010DEd0000101E* ++ ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20X] ++ + pci:v000010DEd0000101F* + ID_MODEL_FROM_DATABASE=GK110GL [Tesla K20] + +@@ -26552,6 +28238,15 @@ pci:v000010DEd00001028* + pci:v000010DEd00001029* + ID_MODEL_FROM_DATABASE=GK110BGL [Tesla K40s] + ++pci:v000010DEd0000102A* ++ ID_MODEL_FROM_DATABASE=GK110BGL [Tesla K40t] ++ ++pci:v000010DEd0000102D* ++ ID_MODEL_FROM_DATABASE=GK110BGL [Tesla K80] ++ ++pci:v000010DEd0000102E* ++ ID_MODEL_FROM_DATABASE=GK110BGL [Tesla K40d] ++ + pci:v000010DEd0000103A* + ID_MODEL_FROM_DATABASE=GK110GL [Quadro K6000] + +@@ -26582,6 +28277,9 @@ pci:v000010DEd0000104B* + pci:v000010DEd0000104C* + ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 705] + ++pci:v000010DEd0000104D* ++ ID_MODEL_FROM_DATABASE=GF119 [GeForce GT 710] ++ + pci:v000010DEd00001050* + ID_MODEL_FROM_DATABASE=GF119M [GeForce GT 520M] + +@@ -27551,9 +29249,15 @@ pci:v000010DEd0000118E* + pci:v000010DEd0000118F* + ID_MODEL_FROM_DATABASE=GK104GL [Tesla K10] + ++pci:v000010DEd00001191* ++ ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Rev. 2] ++ + pci:v000010DEd00001193* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 760 Ti OEM] + ++pci:v000010DEd00001194* ++ ID_MODEL_FROM_DATABASE=GK104GL [Tesla K8] ++ + pci:v000010DEd00001195* + ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 660 Rev. 2] + +@@ -27944,6 +29648,9 @@ pci:v000010DEd00001381* + pci:v000010DEd00001382* + ID_MODEL_FROM_DATABASE=GM107 [GeForce GTX 745] + ++pci:v000010DEd00001389* ++ ID_MODEL_FROM_DATABASE=GM107GL [GRID M3] ++ + pci:v000010DEd00001390* + ID_MODEL_FROM_DATABASE=GM107M [GeForce 845M] + +@@ -27971,6 +29678,9 @@ pci:v000010DEd000013BA* + pci:v000010DEd000013BB* + ID_MODEL_FROM_DATABASE=GM107GL [Quadro K620] + ++pci:v000010DEd000013BD* ++ ID_MODEL_FROM_DATABASE=GM107GL [Tesla M40] ++ + pci:v000010DF* + ID_VENDOR_FROM_DATABASE=Emulex Corporation + +@@ -31772,6 +33482,30 @@ pci:v0000111Dd0000806E* + pci:v0000111Dd0000806F* + ID_MODEL_FROM_DATABASE=HIO524G2 PCI Express Gen2 Switch + ++pci:v0000111Dd00008088* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch ++ ++pci:v0000111Dd00008088sv00001093sd0000752F* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8383mc Device) ++ ++pci:v0000111Dd00008088sv00001093sd00007543* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8383mc System Host) ++ ++pci:v0000111Dd00008088sv00001093sd0000755C* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8364) ++ ++pci:v0000111Dd00008088sv00001093sd0000755D* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8374) ++ ++pci:v0000111Dd00008088sv00001093sd000075FF* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8383mc DMA) ++ ++pci:v0000111Dd00008088sv00001093sd00007600* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8383mc DMA) ++ ++pci:v0000111Dd00008088sv00001093sd00007602* ++ ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8384) ++ + pci:v0000111E* + ID_VENDOR_FROM_DATABASE=Eldec + +@@ -42929,6 +44663,9 @@ pci:v00001425d00005084* + pci:v00001425d00005085* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller + ++pci:v00001425d00005086* ++ ID_MODEL_FROM_DATABASE=T580-5086 Unified Wire Ethernet Controller ++ + pci:v00001425d00005401* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -43007,6 +44744,9 @@ pci:v00001425d00005484* + pci:v00001425d00005485* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller + ++pci:v00001425d00005486* ++ ID_MODEL_FROM_DATABASE=T580-5086 Unified Wire Ethernet Controller ++ + pci:v00001425d00005501* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -43085,6 +44825,9 @@ pci:v00001425d00005584* + pci:v00001425d00005585* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller + ++pci:v00001425d00005586* ++ ID_MODEL_FROM_DATABASE=T580-5086 Unified Wire Storage Controller ++ + pci:v00001425d00005601* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller + +@@ -43163,6 +44906,9 @@ pci:v00001425d00005684* + pci:v00001425d00005685* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Storage Controller + ++pci:v00001425d00005686* ++ ID_MODEL_FROM_DATABASE=T580-5086 Unified Wire Storage Controller ++ + pci:v00001425d00005701* + ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller + +@@ -43319,6 +45065,9 @@ pci:v00001425d00005884* + pci:v00001425d00005885* + ID_MODEL_FROM_DATABASE=T580-5085 Unified Wire Ethernet Controller [VF] + ++pci:v00001425d00005886* ++ ID_MODEL_FROM_DATABASE=T580-5086 Unified Wire Ethernet Controller [VF] ++ + pci:v00001425d0000A000* + ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller + +@@ -49862,6 +51611,15 @@ pci:v000016ED* + pci:v000016EDd00001001* + ID_MODEL_FROM_DATABASE=UMIO communication card + ++pci:v000016F2* ++ ID_VENDOR_FROM_DATABASE=ETAS GmbH ++ ++pci:v000016F2d00000200* ++ ID_MODEL_FROM_DATABASE=I/O board ++ ++pci:v000016F2d00000200sv000016F2sd00000010* ++ ID_MODEL_FROM_DATABASE=I/O board (ES53xx I/O board) ++ + pci:v000016F3* + ID_VENDOR_FROM_DATABASE=Jetway Information Co., Ltd. + +@@ -50004,7 +51762,7 @@ pci:v00001775* + ID_VENDOR_FROM_DATABASE=GE Intelligent Platforms + + pci:v0000177D* +- ID_VENDOR_FROM_DATABASE=Cavium Networks ++ ID_VENDOR_FROM_DATABASE=Cavium, Inc. + + pci:v0000177Dd00000001* + ID_MODEL_FROM_DATABASE=Nitrox XL N1 +@@ -50063,6 +51821,147 @@ pci:v0000177Dd00000095* + pci:v0000177Dd00000096* + ID_MODEL_FROM_DATABASE=Octeon III CN70XX Network Processor + ++pci:v0000177Dd0000A001* ++ ID_MODEL_FROM_DATABASE=THUNDERX MRML Bridge ++ ++pci:v0000177Dd0000A002* ++ ID_MODEL_FROM_DATABASE=THUNDERX PCC Bridge ++ ++pci:v0000177Dd0000A002sv0000177Dsd0000A102* ++ ID_MODEL_FROM_DATABASE=THUNDERX PCC Bridge (CN88XX PCC Bridge) ++ ++pci:v0000177Dd0000A008* ++ ID_MODEL_FROM_DATABASE=THUNDERX SMMU ++ ++pci:v0000177Dd0000A008sv0000177Dsd0000A108* ++ ID_MODEL_FROM_DATABASE=THUNDERX SMMU (CN88XX SMMU) ++ ++pci:v0000177Dd0000A009* ++ ID_MODEL_FROM_DATABASE=THUNDERX Generic Interrupt Controller ++ ++pci:v0000177Dd0000A00A* ++ ID_MODEL_FROM_DATABASE=THUNDERX GPIO Controller ++ ++pci:v0000177Dd0000A00B* ++ ID_MODEL_FROM_DATABASE=THUNDERX MPI / SPI Controller ++ ++pci:v0000177Dd0000A00C* ++ ID_MODEL_FROM_DATABASE=THUNDERX MIO-PTP Controller ++ ++pci:v0000177Dd0000A00D* ++ ID_MODEL_FROM_DATABASE=THUNDERX MIX Network Controller ++ ++pci:v0000177Dd0000A00E* ++ ID_MODEL_FROM_DATABASE=THUNDERX Reset Controller ++ ++pci:v0000177Dd0000A00F* ++ ID_MODEL_FROM_DATABASE=THUNDERX UART Controller ++ ++pci:v0000177Dd0000A010* ++ ID_MODEL_FROM_DATABASE=THUNDERX eMMC/SD Controller ++ ++pci:v0000177Dd0000A011* ++ ID_MODEL_FROM_DATABASE=THUNDERX MIO-BOOT Controller ++ ++pci:v0000177Dd0000A012* ++ ID_MODEL_FROM_DATABASE=THUNDERX TWSI / I2C Controller ++ ++pci:v0000177Dd0000A013* ++ ID_MODEL_FROM_DATABASE=THUNDERX CCPI (Multi-node connect) ++ ++pci:v0000177Dd0000A014* ++ ID_MODEL_FROM_DATABASE=THUNDERX Voltage Regulator Module ++ ++pci:v0000177Dd0000A015* ++ ID_MODEL_FROM_DATABASE=THUNDERX PCIe Switch Logic Interface ++ ++pci:v0000177Dd0000A016* ++ ID_MODEL_FROM_DATABASE=THUNDERX Key Memory ++ ++pci:v0000177Dd0000A017* ++ ID_MODEL_FROM_DATABASE=THUNDERX GTI (Global System Timers) ++ ++pci:v0000177Dd0000A018* ++ ID_MODEL_FROM_DATABASE=THUNDERX Random Number Generator ++ ++pci:v0000177Dd0000A019* ++ ID_MODEL_FROM_DATABASE=THUNDERX DFA ++ ++pci:v0000177Dd0000A01A* ++ ID_MODEL_FROM_DATABASE=THUNDERX Zip Coprocessor ++ ++pci:v0000177Dd0000A01B* ++ ID_MODEL_FROM_DATABASE=THUNDERX xHCI USB Controller ++ ++pci:v0000177Dd0000A01C* ++ ID_MODEL_FROM_DATABASE=THUNDERX AHCI SATA Controller ++ ++pci:v0000177Dd0000A01Csv0000177Dsd0000A11C* ++ ID_MODEL_FROM_DATABASE=THUNDERX AHCI SATA Controller (CN88XX AHCI SATA Controller) ++ ++pci:v0000177Dd0000A01D* ++ ID_MODEL_FROM_DATABASE=THUNDERX RAID Coprocessor ++ ++pci:v0000177Dd0000A01E* ++ ID_MODEL_FROM_DATABASE=THUNDERX Network Interface Controller ++ ++pci:v0000177Dd0000A01F* ++ ID_MODEL_FROM_DATABASE=THUNDERX Traffic Network Switch ++ ++pci:v0000177Dd0000A020* ++ ID_MODEL_FROM_DATABASE=THUNDERX PEM (PCI Express Interface) ++ ++pci:v0000177Dd0000A021* ++ ID_MODEL_FROM_DATABASE=THUNDERX L2C (Level-2 Cache Controller) ++ ++pci:v0000177Dd0000A022* ++ ID_MODEL_FROM_DATABASE=THUNDERX LMC (DRAM Controller) ++ ++pci:v0000177Dd0000A023* ++ ID_MODEL_FROM_DATABASE=THUNDERX OCLA (On-Chip Logic Analyzer) ++ ++pci:v0000177Dd0000A024* ++ ID_MODEL_FROM_DATABASE=THUNDERX OSM ++ ++pci:v0000177Dd0000A025* ++ ID_MODEL_FROM_DATABASE=THUNDERX GSER (General Serializer/Deserializer) ++ ++pci:v0000177Dd0000A026* ++ ID_MODEL_FROM_DATABASE=THUNDERX BGX (Common Ethernet Interface) ++ ++pci:v0000177Dd0000A027* ++ ID_MODEL_FROM_DATABASE=THUNDERX IOBN ++ ++pci:v0000177Dd0000A029* ++ ID_MODEL_FROM_DATABASE=THUNDERX NCSI (Network Controller Sideband Interface) ++ ++pci:v0000177Dd0000A02A* ++ ID_MODEL_FROM_DATABASE=THUNDERX SGP ++ ++pci:v0000177Dd0000A02B* ++ ID_MODEL_FROM_DATABASE=THUNDERX SMI / MDIO Controller ++ ++pci:v0000177Dd0000A02C* ++ ID_MODEL_FROM_DATABASE=THUNDERX DAP (Debug Access Port) ++ ++pci:v0000177Dd0000A02D* ++ ID_MODEL_FROM_DATABASE=THUNDERX PCIERC (PCIe Root Complex) ++ ++pci:v0000177Dd0000A02E* ++ ID_MODEL_FROM_DATABASE=THUNDERX L2C-TAD ++ ++pci:v0000177Dd0000A02F* ++ ID_MODEL_FROM_DATABASE=THUNDERX L2C-CBC ++ ++pci:v0000177Dd0000A030* ++ ID_MODEL_FROM_DATABASE=THUNDERX L2C-MCI ++ ++pci:v0000177Dd0000A031* ++ ID_MODEL_FROM_DATABASE=THUNDERX MIO-FUS (Fuse Access Controller) ++ ++pci:v0000177Dd0000A032* ++ ID_MODEL_FROM_DATABASE=THUNDERX FUSF (Fuse Controller) ++ + pci:v00001787* + ID_VENDOR_FROM_DATABASE=Hightech Information System Ltd. + +@@ -53312,6 +55211,12 @@ pci:v00001BBFd00000003* + pci:v00001BBFd00000004* + ID_MODEL_FROM_DATABASE=MAX4 + ++pci:v00001BEE* ++ ID_VENDOR_FROM_DATABASE=IXXAT Automation GmbH ++ ++pci:v00001BEEd00000003* ++ ID_MODEL_FROM_DATABASE=CAN-IB200/PCIe ++ + pci:v00001BF4* + ID_VENDOR_FROM_DATABASE=VTI Instruments Corporation + +@@ -58271,6 +60176,9 @@ pci:v00008086d000010D3sv0000103Csd00003250* + pci:v00008086d000010D3sv00001043sd00008369* + ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Motherboard) + ++pci:v00008086d000010D3sv00001093sd000076E9* ++ ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (PCIe-8233 Ethernet Adapter) ++ + pci:v00008086d000010D3sv000010A9sd00008029* + ID_MODEL_FROM_DATABASE=82574L Gigabit Network Connection (Prism XL Single Port Gigabit Ethernet) + +@@ -59339,6 +61247,18 @@ pci:v00008086d00001521sv0000108Esd00007B16* + pci:v00008086d00001521sv0000108Esd00007B18* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP) + ++pci:v00008086d00001521sv00001093sd00007648* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (PCIe-8237R Ethernet Adapter) ++ ++pci:v00008086d00001521sv00001093sd00007649* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (PCIe-8236 Ethernet Adapter) ++ ++pci:v00008086d00001521sv00001093sd000076B1* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (PCIe-8237R-S Ethernet Adapter) ++ ++pci:v00008086d00001521sv00001093sd0000775B* ++ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (PCIe-8237 Ethernet Adapter) ++ + pci:v00008086d00001521sv000010A9sd0000802A* + ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (UV2-BaseIO dual-port GbE) + +@@ -59498,6 +61418,9 @@ pci:v00008086d00001533* + pci:v00008086d00001533sv0000103Csd00000003* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Ethernet I210-T1 GbE NIC) + ++pci:v00008086d00001533sv00001093sd00007706* ++ ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (Compact Vision System Ethernet Adapter) ++ + pci:v00008086d00001533sv000010A9sd0000802C* + ID_MODEL_FROM_DATABASE=I210 Gigabit Network Connection (UV300 BaseIO single-port GbE) + +@@ -59703,10 +61626,10 @@ pci:v00008086d000015A3* + ID_MODEL_FROM_DATABASE=Ethernet Connection (3) I218-V + + pci:v00008086d000015B7* +- ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM + + pci:v00008086d000015B8* +- ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-LM ++ ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I219-V + + pci:v00008086d00001600* + ID_MODEL_FROM_DATABASE=Broadwell-U Host Bridge -OPI +diff --git hwdb/20-usb-vendor-model.hwdb hwdb/20-usb-vendor-model.hwdb +index d87313c..ea1c3e3 100644 +--- hwdb/20-usb-vendor-model.hwdb ++++ hwdb/20-usb-vendor-model.hwdb +@@ -30222,7 +30222,7 @@ usb:v0930p6544* + ID_MODEL_FROM_DATABASE=Kingston DataTraveler 2.0 Stick (2GB) + + usb:v0930p6545* +- ID_MODEL_FROM_DATABASE=Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick ++ ID_MODEL_FROM_DATABASE=Kingston DataTraveler 102/2.0 / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick + + usb:v0931* + ID_VENDOR_FROM_DATABASE=Harmonic Data Systems, Ltd +-- +1.7.9.2 + diff --git a/0009-journal-do-not-leak-mmaps-on-OOM.patch b/0009-journal-do-not-leak-mmaps-on-OOM.patch new file mode 100644 index 0000000..3d92f47 --- /dev/null +++ b/0009-journal-do-not-leak-mmaps-on-OOM.patch @@ -0,0 +1,50 @@ +From b67ddc7bbe31cde7f69f9814204d9bb1d4623c47 Mon Sep 17 00:00:00 2001 +From: Philippe De Swert +Date: Wed, 10 Sep 2014 12:20:41 +0300 +Subject: [PATCH] journal: do not leak mmaps on OOM + +After a section of memory is succesfully allocated, some of the following +actions can still fail due to lack of memory. In this case -ENOMEM is +returned without actually freeing the already mapped memory. +Found with coverity. Fixes: CID#1237762 +--- + src/journal/mmap-cache.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git src/journal/mmap-cache.c src/journal/mmap-cache.c +index 7dbbb5e..908562d 100644 +--- src/journal/mmap-cache.c ++++ src/journal/mmap-cache.c +@@ -496,15 +496,15 @@ static int add_mmap( + + c = context_add(m, context); + if (!c) +- return -ENOMEM; ++ goto outofmem; + + f = fd_add(m, fd); + if (!f) +- return -ENOMEM; ++ goto outofmem; + + w = window_add(m); + if (!w) +- return -ENOMEM; ++ goto outofmem; + + w->keep_always = keep_always; + w->ptr = d; +@@ -522,6 +522,10 @@ static int add_mmap( + if (ret) + *ret = (uint8_t*) w->ptr + (offset - w->offset); + return 1; ++ ++outofmem: ++ munmap(d, wsize); ++ return -ENOMEM; + } + + int mmap_cache_get( +-- +1.7.9.2 + diff --git a/0010-manager-use-correct-cleanup-function.patch b/0010-manager-use-correct-cleanup-function.patch new file mode 100644 index 0000000..0f46dec --- /dev/null +++ b/0010-manager-use-correct-cleanup-function.patch @@ -0,0 +1,30 @@ +From 807d0cca2b0daf4cd725298c1b5e062b1126f15b Mon Sep 17 00:00:00 2001 +From: Thomas Hindoe Paaboel Andersen +Date: Thu, 11 Sep 2014 21:14:53 +0200 +Subject: [PATCH] manager: use correct cleanup function + +Close the dir instead of attempt to free it. + +Introduced in 874310b7b68c4c0d36ff07397db30a959bb7dae5 + +Found with coverity. Fixes: CID#996368 +--- + src/core/manager.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/core/manager.c src/core/manager.c +index 9abdf47..095111e 100644 +--- src/core/manager.c ++++ src/core/manager.c +@@ -896,7 +896,7 @@ static int manager_coldplug(Manager *m) { + + static void manager_build_unit_path_cache(Manager *m) { + char **i; +- _cleanup_free_ DIR *d = NULL; ++ _cleanup_closedir_ DIR *d = NULL; + int r; + + assert(m); +-- +1.7.9.2 + diff --git a/1067-udev-always-resolve-correctly-database-names-on-chan.patch b/1067-udev-always-resolve-correctly-database-names-on-chan.patch new file mode 100644 index 0000000..9fdc9c6 --- /dev/null +++ b/1067-udev-always-resolve-correctly-database-names-on-chan.patch @@ -0,0 +1,53 @@ +From 368082520b25722575783f06879fb5fc2e4c219c Mon Sep 17 00:00:00 2001 +From: Robert Milasan +Date: Sat, 13 Sep 2014 15:18:37 +0200 +Subject: [PATCH] udev: always resolve correctly database names on 'change' + event + +Signed-off-by: Robert Milasan +--- + src/libudev/libudev-device.c | 2 +- + src/libudev/libudev-private.h | 1 + + src/udev/udev-event.c | 1 + + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c +index d61a2ad..2699374 100644 +--- a/src/libudev/libudev-device.c ++++ b/src/libudev/libudev-device.c +@@ -161,7 +161,7 @@ _public_ dev_t udev_device_get_devnum(struct udev_device *udev_device) + return udev_device->devnum; + } + +-static int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum) ++int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum) + { + char num[32]; + +diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h +index 35ea7ba..05a6410 100644 +--- a/src/libudev/libudev-private.h ++++ b/src/libudev/libudev-private.h +@@ -59,6 +59,7 @@ uid_t udev_device_get_devnode_uid(struct udev_device *udev_device); + gid_t udev_device_get_devnode_gid(struct udev_device *udev_device); + int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem); + int udev_device_set_syspath(struct udev_device *udev_device, const char *syspath); ++int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum); + int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink); + void udev_device_cleanup_devlinks_list(struct udev_device *udev_device); + struct udev_list_entry *udev_device_add_property(struct udev_device *udev_device, const char *key, const char *value); +diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c +index e8d6676..2cf0763 100644 +--- a/src/udev/udev-event.c ++++ b/src/udev/udev-event.c +@@ -812,6 +812,7 @@ void udev_event_execute_rules(struct udev_event *event, + if (event->dev_db != NULL) { + udev_device_set_syspath(event->dev_db, udev_device_get_syspath(dev)); + udev_device_set_subsystem(event->dev_db, udev_device_get_subsystem(dev)); ++ udev_device_set_devnum(event->dev_db, udev_device_get_devnum(dev)); + udev_device_read_db(event->dev_db, NULL); + udev_device_set_info_loaded(event->dev_db); + +-- +1.8.4.5 + diff --git a/1068-udev-net_setup_link-export-the-.link-filename-applie.patch b/1068-udev-net_setup_link-export-the-.link-filename-applie.patch new file mode 100644 index 0000000..e0f7039 --- /dev/null +++ b/1068-udev-net_setup_link-export-the-.link-filename-applie.patch @@ -0,0 +1,26 @@ +From ad6e5b348fa88f44d6cbfe7aabda7612a1d0463f Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 8 Sep 2014 14:00:58 +0200 +Subject: [PATCH] udev: net_setup_link - export the .link filename applied to + the link + +--- + src/udev/udev-builtin-net_setup_link.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git src/udev/udev-builtin-net_setup_link.c src/udev/udev-builtin-net_setup_link.c +index 6207269..14351de 100644 +--- src/udev/udev-builtin-net_setup_link.c ++++ src/udev/udev-builtin-net_setup_link.c +@@ -57,6 +57,8 @@ static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv + return EXIT_FAILURE; + } + ++ udev_builtin_add_property(dev, test, "ID_NET_LINK_FILE", link->filename); ++ + if (name) + udev_builtin_add_property(dev, test, "ID_NET_NAME", name); + +-- +1.7.9.2 + diff --git a/1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch b/1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch new file mode 100644 index 0000000..7f7d24a --- /dev/null +++ b/1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch @@ -0,0 +1,27 @@ +From e4d7c49050769877c7f10184bbe2a1e77d0b5333 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Mon, 8 Sep 2014 17:16:24 +0200 +Subject: [PATCH] rules: net-setup-link - preserve ID_NET_LINK_FILE and + ID_NET_NAME after MOVE + +--- + rules/80-net-setup-link.rules | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git rules/80-net-setup-link.rules rules/80-net-setup-link.rules +index f390fcb..27c43b9 100644 +--- rules/80-net-setup-link.rules ++++ rules/80-net-setup-link.rules +@@ -4,7 +4,8 @@ SUBSYSTEM!="net", GOTO="net_setup_link_end" + + IMPORT{builtin}="path_id" + +-ACTION=="move", IMPORT{db}="ID_NET_DRIVER" ++ACTION=="move", IMPORT{db}="ID_NET_DRIVER", IMPORT{db}="ID_NET_LINK_FILE", ++IMPORT{db}="ID_NET_NAME" + + ACTION!="add", GOTO="net_setup_link_end" + +-- +1.7.9.2 + diff --git a/1070-rules-net-setup-link-remove-stray-linebreak.patch b/1070-rules-net-setup-link-remove-stray-linebreak.patch new file mode 100644 index 0000000..f389aa8 --- /dev/null +++ b/1070-rules-net-setup-link-remove-stray-linebreak.patch @@ -0,0 +1,27 @@ +From 52e231b04635400292179cf51b30d7d9b6323fb2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= +Date: Mon, 8 Sep 2014 22:53:39 +0300 +Subject: [PATCH] rules: net-setup-link - remove stray linebreak + +If not backslash-escaped, it splits the rule in two. +--- + rules/80-net-setup-link.rules | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git rules/80-net-setup-link.rules rules/80-net-setup-link.rules +index 27c43b9..4207694 100644 +--- rules/80-net-setup-link.rules ++++ rules/80-net-setup-link.rules +@@ -4,8 +4,7 @@ SUBSYSTEM!="net", GOTO="net_setup_link_end" + + IMPORT{builtin}="path_id" + +-ACTION=="move", IMPORT{db}="ID_NET_DRIVER", IMPORT{db}="ID_NET_LINK_FILE", +-IMPORT{db}="ID_NET_NAME" ++ACTION=="move", IMPORT{db}="ID_NET_DRIVER", IMPORT{db}="ID_NET_LINK_FILE", IMPORT{db}="ID_NET_NAME" + + ACTION!="add", GOTO="net_setup_link_end" + +-- +1.7.9.2 + diff --git a/1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch b/1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch new file mode 100644 index 0000000..f821d89 --- /dev/null +++ b/1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch @@ -0,0 +1,54 @@ +From b081b27e1433cdc7ac72b25ae8b4db887d79187f Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 9 Sep 2014 12:23:19 +0200 +Subject: [PATCH] udev: import the full db on MOVE events for devices without + dev_t + +--- + rules/80-net-setup-link.rules | 2 -- + src/udev/udev-event.c | 16 ++++++++++++++++ + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git rules/80-net-setup-link.rules rules/80-net-setup-link.rules +index 4207694..6e411a9 100644 +--- rules/80-net-setup-link.rules ++++ rules/80-net-setup-link.rules +@@ -4,8 +4,6 @@ SUBSYSTEM!="net", GOTO="net_setup_link_end" + + IMPORT{builtin}="path_id" + +-ACTION=="move", IMPORT{db}="ID_NET_DRIVER", IMPORT{db}="ID_NET_LINK_FILE", IMPORT{db}="ID_NET_NAME" +- + ACTION!="add", GOTO="net_setup_link_end" + + IMPORT{builtin}="net_setup_link" +diff --git src/udev/udev-event.c src/udev/udev-event.c +index 00cd6d4..18b92ca 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -805,6 +805,22 @@ void udev_event_execute_rules(struct udev_event *event, + udev_watch_end(event->udev, event->dev_db); + } + ++ if (major(udev_device_get_devnum(dev)) == 0 && ++ streq(udev_device_get_action(dev), "move")) { ++ struct udev_list_entry *entry; ++ ++ for ((entry = udev_device_get_properties_list_entry(event->dev_db)); entry; entry = udev_list_entry_get_next(entry)) { ++ const char *key, *value; ++ struct udev_list_entry *property; ++ ++ key = udev_list_entry_get_name(entry); ++ value = udev_list_entry_get_value(entry); ++ ++ property = udev_device_add_property(event->dev, key, value); ++ udev_list_entry_set_num(property, true); ++ } ++ } ++ + udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); + + /* rename a new network interface, if needed */ +-- +1.7.9.2 + diff --git a/1072-udev-netif_rename-don-t-log-to-kmsg.patch b/1072-udev-netif_rename-don-t-log-to-kmsg.patch new file mode 100644 index 0000000..2a5cebd --- /dev/null +++ b/1072-udev-netif_rename-don-t-log-to-kmsg.patch @@ -0,0 +1,39 @@ +Based on 1187f20655de0c37337ea73e1e55823b83cd7c00 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 9 Sep 2014 22:45:03 +0200 +Subject: [PATCH] udev: netif_rename - don't log to kmsg + +As of 3.17, the kernel will do this on its own, so just do regular log_debug() logging from udev. +--- + src/udev/udev-event.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- src/udev/udev-event.c ++++ src/udev/udev-event.c 2014-09-16 08:52:36.154735794 +0000 +@@ -770,7 +770,7 @@ static int rename_netif(struct udev_even + + r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); + if (r == 0) { +- print_kmsg("renamed network interface %s to %s\n", oldname, name); ++ log_debug("renamed network interface %s to %s", oldname, name); + return r; + } else if (r != -EEXIST) { + log_error("error changing net interface name %s to %s: %s", +@@ -789,7 +789,7 @@ static int rename_netif(struct udev_even + } + + /* log temporary name */ +- print_kmsg("renamed network interface %s to %s\n", oldname, interim); ++ log_debug("renamed network interface %s to %s", oldname, interim); + + loop = 90 * 20; + while (loop--) { +@@ -798,7 +798,7 @@ static int rename_netif(struct udev_even + + r = rtnl_set_link_name(rtnl, udev_device_get_ifindex(dev), name); + if (r == 0) { +- print_kmsg("renamed network interface %s to %s\n", interim, name); ++ log_debug("renamed network interface %s to %s", interim, name); + break; + } + diff --git a/1073-udev-drop-print_kmsg.patch b/1073-udev-drop-print_kmsg.patch new file mode 100644 index 0000000..27aaa6e --- /dev/null +++ b/1073-udev-drop-print_kmsg.patch @@ -0,0 +1,75 @@ +Based on 9d19a679f23c7a72c326cbbbf44e0c9f423dec5d Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Tue, 9 Sep 2014 22:48:07 +0200 +Subject: [PATCH] udev - drop print_kmsg + +The only remaining user was 'starting version XXX', which is now logged using log_info(). +--- + src/libudev/libudev-private.h | 1 - + src/libudev/libudev-util.c | 25 ------------------------- + src/udev/udevd.c | 2 +- + 3 files changed, 1 insertion(+), 27 deletions(-) + +diff --git src/libudev/libudev-private.h src/libudev/libudev-private.h +index ae97557..cd1c1fb 100644 +--- src/libudev/libudev-private.h ++++ src/libudev/libudev-private.h +@@ -170,6 +170,5 @@ int util_delete_path(struct udev *udev, const char *path); + uid_t util_lookup_user(struct udev *udev, const char *user); + gid_t util_lookup_group(struct udev *udev, const char *group); + int util_resolve_subsys_kernel(struct udev *udev, const char *string, char *result, size_t maxsize, int read_value); +-ssize_t print_kmsg(const char *fmt, ...) _printf_(1, 2); + + #endif +--- src/libudev/libudev-util.c ++++ src/libudev/libudev-util.c 2014-09-16 08:56:01.862736270 +0000 +@@ -422,33 +422,3 @@ static int parse_proc_cmdline_word(const + + return 0; + } +- +-ssize_t print_kmsg(const char *fmt, ...) +-{ +- _cleanup_close_ int fd = -1; +- va_list ap; +- char text[1024]; +- ssize_t len; +- ssize_t ret; +- +- if (parse_proc_cmdline(parse_proc_cmdline_word) == -115) { +- fd = open("/dev/null", O_WRONLY|O_NOCTTY|O_CLOEXEC); +- } else { +- fd = open("/dev/kmsg", O_WRONLY|O_NOCTTY|O_CLOEXEC); +- } +- +- if (fd < 0) +- return -errno; +- +- len = snprintf(text, sizeof(text), "<30>systemd-udevd[%u]: ", getpid()); +- +- va_start(ap, fmt); +- len += vsnprintf(text + len, sizeof(text) - len, fmt, ap); +- va_end(ap); +- +- ret = write(fd, text, len); +- if (ret < 0) +- return -errno; +- +- return ret; +-} +diff --git src/udev/udevd.c src/udev/udevd.c +index be0acc3..b023b6e 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -1200,7 +1200,7 @@ int main(int argc, char *argv[]) { + sd_notify(1, "READY=1"); + } + +- print_kmsg("starting version " VERSION "\n"); ++ log_info("starting version " VERSION "\n"); + + if (!debug) { + int fd; +-- +1.7.9.2 + diff --git a/1074-udev-fix-copy-paste-error-in-log-message.patch b/1074-udev-fix-copy-paste-error-in-log-message.patch new file mode 100644 index 0000000..a617451 --- /dev/null +++ b/1074-udev-fix-copy-paste-error-in-log-message.patch @@ -0,0 +1,25 @@ +From ec3281d3b681b002dfe1a4bea0532a504e37557a Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 10 Sep 2014 07:59:22 +0200 +Subject: [PATCH] udev: fix copy-paste error in log message + +--- + src/udev/udev-rules.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index cc56215..6de7511 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -1323,7 +1323,7 @@ static int add_rule(struct udev_rules *rules, char *line, + if (cmd < UDEV_BUILTIN_MAX) + rule_add_key(&rule_tmp, TK_A_RUN_BUILTIN, op, value, &cmd); + else +- log_error("IMPORT{builtin}: '%s' unknown %s:%u", value, filename, lineno); ++ log_error("RUN{builtin}: '%s' unknown %s:%u", value, filename, lineno); + } else if (streq(attr, "program")) { + enum udev_builtin_cmd cmd = UDEV_BUILTIN_MAX; + +-- +1.7.9.2 + diff --git a/1075-udev-timeout-increase-timeout.patch b/1075-udev-timeout-increase-timeout.patch new file mode 100644 index 0000000..08f6dae --- /dev/null +++ b/1075-udev-timeout-increase-timeout.patch @@ -0,0 +1,28 @@ +From b5338a19864ac3f5632aee48069a669479621dca Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Wed, 10 Sep 2014 10:56:26 +0200 +Subject: [PATCH] udev: timeout - increase timeout + +Some kernel modules still take more than one minute to insmod, we no longer rely on the timeout +killing insmod within a given period of time, so just bump this to a much higher value. Its only +purpose is to make sure that nothing stays aronud forever. +--- + src/udev/udevd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git src/udev/udevd.c src/udev/udevd.c +index b023b6e..a7f8cbd 100644 +--- src/udev/udevd.c ++++ src/udev/udevd.c +@@ -74,7 +74,7 @@ static bool reload; + static int children; + static int children_max; + static int exec_delay; +-static usec_t event_timeout_usec = 60 * USEC_PER_SEC; ++static usec_t event_timeout_usec = 180 * USEC_PER_SEC; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +-- +1.7.9.2 + diff --git a/1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch b/1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch new file mode 100644 index 0000000..4345f92 --- /dev/null +++ b/1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch @@ -0,0 +1,350 @@ +Based on 671174136525ddf208cdbe75d6d6bd159afa961f Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 11 Sep 2014 18:49:04 +0200 +Subject: [PATCH] udev: timeout - warn after a third of the timeout before + killing + +--- + src/test/test-udev.c | 4 ++-- + src/udev/udev-event.c | 40 ++++++++++++++++++++++++++++++---------- + src/udev/udev-rules.c | 8 +++++--- + src/udev/udev.h | 9 ++++++--- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 40 +++++++++++++++++++++++++++------------- + 6 files changed, 71 insertions(+), 32 deletions(-) + +diff --git src/test/test-udev.c src/test/test-udev.c +index 566a73a..f085262 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -153,8 +153,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); +- udev_event_execute_run(event, USEC_PER_SEC, NULL); ++ udev_event_execute_rules(event, 3 * USEC_PER_SEC, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 3 * USEC_PER_SEC, USEC_PER_SEC, NULL); + out: + if (event != NULL && event->fd_signal >= 0) + close(event->fd_signal); +diff --git src/udev/udev-event.c src/udev/udev-event.c +index a883edc..e8d6676 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -541,6 +541,7 @@ out: + + static int spawn_wait(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; +@@ -550,6 +551,7 @@ static int spawn_wait(struct udev_event *event, + + while (pid > 0) { + int timeout; ++ int timeout_warn = 0; + int fdcount; + + if (timeout_usec > 0) { +@@ -558,13 +560,17 @@ static int spawn_wait(struct udev_event *event, + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; + if (age_usec >= timeout_usec) + timeout = 1000; +- else +- timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ else { ++ if (timeout_warn_usec > 0) ++ timeout_warn = ((timeout_warn_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ ++ timeout = ((timeout_usec - timeout_warn_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ } + } else { + timeout = -1; + } + +- fdcount = poll(pfd, 1, timeout); ++ fdcount = poll(pfd, 1, timeout_warn); + if (fdcount < 0) { + if (errno == EINTR) + continue; +@@ -573,8 +579,20 @@ static int spawn_wait(struct udev_event *event, + goto out; + } + if (fdcount == 0) { +- log_error("timeout: killing '%s' [%u]", cmd, pid); +- kill(pid, SIGKILL); ++ log_warning("slow: '%s' [%u]", cmd, pid); ++ ++ fdcount = poll(pfd, 1, timeout); ++ if (fdcount < 0) { ++ if (errno == EINTR) ++ continue; ++ err = -errno; ++ log_error("failed to poll: %m"); ++ goto out; ++ } ++ if (fdcount == 0) { ++ log_error("timeout: killing '%s' [%u]", cmd, pid); ++ kill(pid, SIGKILL); ++ } + } + + if (pfd[0].revents & POLLIN) { +@@ -654,6 +672,7 @@ out: + + int udev_event_spawn(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize) { + struct udev *udev = event->udev; +@@ -730,7 +749,7 @@ int udev_event_spawn(struct udev_event *event, + outpipe[READ_END], errpipe[READ_END], + result, ressize); + +- err = spawn_wait(event, timeout_usec, cmd, pid); ++ err = spawn_wait(event, timeout_usec, timeout_warn_usec, cmd, pid); + } + + out: +@@ -769,6 +788,7 @@ static int rename_netif(struct udev_event *event) { + + void udev_event_execute_rules(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + +@@ -783,7 +803,7 @@ void udev_event_execute_rules(struct udev_event *event, + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, timeout_warn_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -816,7 +836,7 @@ void udev_event_execute_rules(struct udev_event *event, + } + } + +- udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, timeout_warn_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -889,7 +909,7 @@ void udev_event_execute_rules(struct udev_event *event, + } + } + +-void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -912,7 +932,7 @@ void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9514dde..db95442 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -615,6 +615,7 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + + static int import_program_into_properties(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; +@@ -623,7 +624,7 @@ static int import_program_into_properties(struct udev_event *event, + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -1862,6 +1863,7 @@ enum escape_type { + int udev_rules_apply_to_event(struct udev_rules *rules, + struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const sigset_t *sigmask) { + struct token *cur; + struct token *rule; +@@ -2070,7 +2072,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2106,7 +2108,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, timeout_warn_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index ed01da3..765ba9e 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -73,7 +73,8 @@ struct udev_rules; + struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names); + struct udev_rules *udev_rules_unref(struct udev_rules *rules); + bool udev_rules_check_timestamp(struct udev_rules *rules); +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask); ++int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, ++ const sigset_t *sigmask); + int udev_rules_apply_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -84,10 +85,12 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, + char *result, size_t maxsize, int read_value); + int udev_event_spawn(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, usec_t timeout_usec, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigset); ++void udev_event_execute_rules(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, ++ struct udev_rules *rules, const sigset_t *sigset); ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, const sigset_t *sigset); + int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); + + /* udev-watch.c */ +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 809adb6..4738b61 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -136,7 +136,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) { + goto out; + } + +- udev_event_execute_rules(event, 60 * USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 60 * USEC_PER_SEC, 20 * USEC_PER_SEC, rules, &sigmask_orig); + + udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) + printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)); +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-16 09:01:14.382735997 +0000 +@@ -75,6 +75,7 @@ static int children; + static int children_max; + static int exec_delay; + static usec_t event_timeout_usec = 180 * USEC_PER_SEC; ++static usec_t event_timeout_warn_usec = 180 * USEC_PER_SEC / 3; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -129,6 +130,7 @@ struct worker { + enum worker_state state; + struct event *event; + usec_t event_start_usec; ++ bool event_warned; + }; + + /* passed from worker to main process */ +@@ -314,9 +316,9 @@ static void worker_new(struct event *eve + } + + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, event_timeout_warn_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, event_timeout_warn_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -410,6 +412,7 @@ out: + worker->pid = pid; + worker->state = WORKER_RUNNING; + worker->event_start_usec = now(CLOCK_MONOTONIC); ++ worker->event_warned = false; + worker->event = event; + event->state = EVENT_RUNNING; + udev_list_node_append(&worker->node, &worker_list); +@@ -441,6 +444,7 @@ static void event_run(struct event *even + worker->event = event; + worker->state = WORKER_RUNNING; + worker->event_start_usec = now(CLOCK_MONOTONIC); ++ worker->event_warned = false; + event->state = EVENT_RUNNING; + return; + } +@@ -1016,6 +1020,7 @@ static void kernel_cmdline_options(struc + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { + event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + } + + free(s); +@@ -1078,6 +1083,7 @@ int main(int argc, char *argv[]) { + break; + case 't': + event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + break; + case 'D': + debug = true; +@@ -1413,21 +1419,29 @@ int main(int argc, char *argv[]) { + /* check for hanging events */ + udev_list_node_foreach(loop, &worker_list) { + struct worker *worker = node_to_worker(loop); ++ usec_t ts; + + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout_usec) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, worker->event->devpath); +- kill(worker->pid, SIGKILL); +- worker->state = WORKER_KILLED; +- +- /* drop reference taken for state 'running' */ +- worker_unref(worker); +- log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath); +- worker->event->exitcode = -64; +- event_queue_delete(worker->event); +- worker->event = NULL; ++ ts = now(CLOCK_MONOTONIC); ++ ++ if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { ++ if ((ts - worker->event_start_usec) > event_timeout_usec) { ++ log_error("worker [%u] %s timeout; kill it", worker->pid, worker->event->devpath); ++ kill(worker->pid, SIGKILL); ++ worker->state = WORKER_KILLED; ++ ++ /* drop reference taken for state 'running' */ ++ worker_unref(worker); ++ log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath); ++ worker->event->exitcode = -64; ++ event_queue_delete(worker->event); ++ worker->event = NULL; ++ } else if (!worker->event_warned) { ++ log_warning("worker [%u] %s is taking a long time", worker->pid, worker->event->devpath); ++ worker->event_warned = true; ++ } + } + } + +-- +1.7.9.2 + diff --git a/1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch b/1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch new file mode 100644 index 0000000..57b2d69 --- /dev/null +++ b/1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch @@ -0,0 +1,350 @@ +Based on 671174136525ddf208cdbe75d6d6bd159afa961f Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Thu, 11 Sep 2014 18:49:04 +0200 +Subject: [PATCH] udev: timeout - warn after a third of the timeout before + killing + +--- + src/test/test-udev.c | 4 ++-- + src/udev/udev-event.c | 40 ++++++++++++++++++++++++++++++---------- + src/udev/udev-rules.c | 8 +++++--- + src/udev/udev.h | 9 ++++++--- + src/udev/udevadm-test.c | 2 +- + src/udev/udevd.c | 40 +++++++++++++++++++++++++++------------- + 6 files changed, 71 insertions(+), 32 deletions(-) + +diff --git src/test/test-udev.c src/test/test-udev.c +index 566a73a..f085262 100644 +--- src/test/test-udev.c ++++ src/test/test-udev.c +@@ -153,8 +153,8 @@ int main(int argc, char *argv[]) { + } + } + +- udev_event_execute_rules(event, USEC_PER_SEC, rules, &sigmask_orig); +- udev_event_execute_run(event, USEC_PER_SEC, NULL); ++ udev_event_execute_rules(event, 3 * USEC_PER_SEC, USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_run(event, 3 * USEC_PER_SEC, USEC_PER_SEC, NULL); + out: + if (event != NULL && event->fd_signal >= 0) + close(event->fd_signal); +diff --git src/udev/udev-event.c src/udev/udev-event.c +index a883edc..e8d6676 100644 +--- src/udev/udev-event.c ++++ src/udev/udev-event.c +@@ -541,6 +541,7 @@ out: + + static int spawn_wait(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, pid_t pid) { + struct pollfd pfd[1]; + int err = 0; +@@ -550,6 +551,7 @@ static int spawn_wait(struct udev_event *event, + + while (pid > 0) { + int timeout; ++ int timeout_warn = 0; + int fdcount; + + if (timeout_usec > 0) { +@@ -558,13 +560,17 @@ static int spawn_wait(struct udev_event *event, + age_usec = now(CLOCK_MONOTONIC) - event->birth_usec; + if (age_usec >= timeout_usec) + timeout = 1000; +- else +- timeout = ((timeout_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ else { ++ if (timeout_warn_usec > 0) ++ timeout_warn = ((timeout_warn_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ ++ timeout = ((timeout_usec - timeout_warn_usec - age_usec) / USEC_PER_MSEC) + MSEC_PER_SEC; ++ } + } else { + timeout = -1; + } + +- fdcount = poll(pfd, 1, timeout); ++ fdcount = poll(pfd, 1, timeout_warn); + if (fdcount < 0) { + if (errno == EINTR) + continue; +@@ -573,8 +579,20 @@ static int spawn_wait(struct udev_event *event, + goto out; + } + if (fdcount == 0) { +- log_error("timeout: killing '%s' [%u]", cmd, pid); +- kill(pid, SIGKILL); ++ log_warning("slow: '%s' [%u]", cmd, pid); ++ ++ fdcount = poll(pfd, 1, timeout); ++ if (fdcount < 0) { ++ if (errno == EINTR) ++ continue; ++ err = -errno; ++ log_error("failed to poll: %m"); ++ goto out; ++ } ++ if (fdcount == 0) { ++ log_error("timeout: killing '%s' [%u]", cmd, pid); ++ kill(pid, SIGKILL); ++ } + } + + if (pfd[0].revents & POLLIN) { +@@ -654,6 +672,7 @@ out: + + int udev_event_spawn(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize) { + struct udev *udev = event->udev; +@@ -730,7 +749,7 @@ int udev_event_spawn(struct udev_event *event, + outpipe[READ_END], errpipe[READ_END], + result, ressize); + +- err = spawn_wait(event, timeout_usec, cmd, pid); ++ err = spawn_wait(event, timeout_usec, timeout_warn_usec, cmd, pid); + } + + out: +@@ -769,6 +788,7 @@ static int rename_netif(struct udev_event *event) { + + void udev_event_execute_rules(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + struct udev_rules *rules, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + +@@ -783,7 +803,7 @@ void udev_event_execute_rules(struct udev_event *event, + if (major(udev_device_get_devnum(dev)) != 0) + udev_watch_end(event->udev, dev); + +- udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, timeout_warn_usec, sigmask); + + if (major(udev_device_get_devnum(dev)) != 0) + udev_node_remove(dev); +@@ -816,7 +836,7 @@ void udev_event_execute_rules(struct udev_event *event, + } + } + +- udev_rules_apply_to_event(rules, event, timeout_usec, sigmask); ++ udev_rules_apply_to_event(rules, event, timeout_usec, timeout_warn_usec, sigmask); + + /* rename a new network interface, if needed */ + if (udev_device_get_ifindex(dev) > 0 && streq(udev_device_get_action(dev), "add") && +@@ -889,7 +909,7 @@ void udev_event_execute_rules(struct udev_event *event, + } + } + +-void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask) { ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, const sigset_t *sigmask) { + struct udev_list_entry *list_entry; + + udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) { +@@ -912,7 +932,7 @@ void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const + + udev_event_apply_format(event, cmd, program, sizeof(program)); + envp = udev_device_get_properties_envp(event->dev); +- udev_event_spawn(event, timeout_usec, program, envp, sigmask, NULL, 0); ++ udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, NULL, 0); + } + } + } +diff --git src/udev/udev-rules.c src/udev/udev-rules.c +index 9514dde..db95442 100644 +--- src/udev/udev-rules.c ++++ src/udev/udev-rules.c +@@ -615,6 +615,7 @@ static int import_file_into_properties(struct udev_device *dev, const char *file + + static int import_program_into_properties(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *program, const sigset_t *sigmask) { + struct udev_device *dev = event->dev; + char **envp; +@@ -623,7 +624,7 @@ static int import_program_into_properties(struct udev_event *event, + int err; + + envp = udev_device_get_properties_envp(dev); +- err = udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)); ++ err = udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, result, sizeof(result)); + if (err < 0) + return err; + +@@ -1862,6 +1863,7 @@ enum escape_type { + int udev_rules_apply_to_event(struct udev_rules *rules, + struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const sigset_t *sigmask) { + struct token *cur; + struct token *rule; +@@ -2070,7 +2072,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (udev_event_spawn(event, timeout_usec, program, envp, sigmask, result, sizeof(result)) < 0) { ++ if (udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, result, sizeof(result)) < 0) { + if (cur->key.op != OP_NOMATCH) + goto nomatch; + } else { +@@ -2106,7 +2108,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, + rules_str(rules, rule->rule.filename_off), + rule->rule.filename_line); + +- if (import_program_into_properties(event, timeout_usec, import, sigmask) != 0) ++ if (import_program_into_properties(event, timeout_usec, timeout_warn_usec, import, sigmask) != 0) + if (cur->key.op != OP_NOMATCH) + goto nomatch; + break; +diff --git src/udev/udev.h src/udev/udev.h +index ed01da3..765ba9e 100644 +--- src/udev/udev.h ++++ src/udev/udev.h +@@ -73,7 +73,8 @@ struct udev_rules; + struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names); + struct udev_rules *udev_rules_unref(struct udev_rules *rules); + bool udev_rules_check_timestamp(struct udev_rules *rules); +-int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, usec_t timeout_usec, const sigset_t *sigmask); ++int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, ++ const sigset_t *sigmask); + int udev_rules_apply_static_dev_perms(struct udev_rules *rules); + + /* udev-event.c */ +@@ -84,10 +85,12 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string, + char *result, size_t maxsize, int read_value); + int udev_event_spawn(struct udev_event *event, + usec_t timeout_usec, ++ usec_t timeout_warn_usec, + const char *cmd, char **envp, const sigset_t *sigmask, + char *result, size_t ressize); +-void udev_event_execute_rules(struct udev_event *event, usec_t timeout_usec, struct udev_rules *rules, const sigset_t *sigset); +-void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, const sigset_t *sigset); ++void udev_event_execute_rules(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, ++ struct udev_rules *rules, const sigset_t *sigset); ++void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, const sigset_t *sigset); + int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); + + /* udev-watch.c */ +diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c +index 809adb6..4738b61 100644 +--- src/udev/udevadm-test.c ++++ src/udev/udevadm-test.c +@@ -136,7 +136,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) { + goto out; + } + +- udev_event_execute_rules(event, 60 * USEC_PER_SEC, rules, &sigmask_orig); ++ udev_event_execute_rules(event, 60 * USEC_PER_SEC, 20 * USEC_PER_SEC, rules, &sigmask_orig); + + udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) + printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)); +--- src/udev/udevd.c ++++ src/udev/udevd.c 2014-09-16 09:01:14.382735997 +0000 +@@ -75,6 +75,7 @@ static int children; + static int children_max; + static int exec_delay; + static usec_t event_timeout_usec = 180 * USEC_PER_SEC; ++static usec_t event_timeout_warn_usec = 180 * USEC_PER_SEC / 3; + static sigset_t sigmask_orig; + static UDEV_LIST(event_list); + static UDEV_LIST(worker_list); +@@ -129,6 +130,7 @@ struct worker { + enum worker_state state; + struct event *event; + usec_t event_start_usec; ++ bool event_warned; + }; + + /* passed from worker to main process */ +@@ -314,9 +316,9 @@ static void worker_new(struct event *eve + } + + /* apply rules, create node, symlinks */ +- udev_event_execute_rules(udev_event, event_timeout_usec, rules, &sigmask_orig); ++ udev_event_execute_rules(udev_event, event_timeout_usec, event_timeout_warn_usec, rules, &sigmask_orig); + +- udev_event_execute_run(udev_event, event_timeout_usec, &sigmask_orig); ++ udev_event_execute_run(udev_event, event_timeout_usec, event_timeout_warn_usec, &sigmask_orig); + + /* apply/restore inotify watch */ + if (udev_event->inotify_watch) { +@@ -410,6 +412,7 @@ out: + worker->pid = pid; + worker->state = WORKER_RUNNING; + worker->event_start_usec = now(CLOCK_MONOTONIC); ++ worker->event_warned = false; + worker->event = event; + event->state = EVENT_RUNNING; + udev_list_node_append(&worker->node, &worker_list); +@@ -441,6 +444,7 @@ static void event_run(struct event *even + worker->event = event; + worker->state = WORKER_RUNNING; + worker->event_start_usec = now(CLOCK_MONOTONIC); ++ worker->event_warned = false; + event->state = EVENT_RUNNING; + return; + } +@@ -1016,6 +1020,7 @@ static void kernel_cmdline_options(struc + exec_delay = strtoul(opt + 16, NULL, 0); + } else if (startswith(opt, "udev.event-timeout=")) { + event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + } + + free(s); +@@ -1078,6 +1083,7 @@ int main(int argc, char *argv[]) { + break; + case 't': + event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC; ++ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1; + break; + case 'D': + debug = true; +@@ -1413,21 +1419,29 @@ int main(int argc, char *argv[]) { + /* check for hanging events */ + udev_list_node_foreach(loop, &worker_list) { + struct worker *worker = node_to_worker(loop); ++ usec_t ts; + + if (worker->state != WORKER_RUNNING) + continue; + +- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > event_timeout_usec) { +- log_error("worker [%u] %s timeout; kill it", worker->pid, worker->event->devpath); +- kill(worker->pid, SIGKILL); +- worker->state = WORKER_KILLED; +- +- /* drop reference taken for state 'running' */ +- worker_unref(worker); +- log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath); +- worker->event->exitcode = -64; +- event_queue_delete(worker->event, true); +- worker->event = NULL; ++ ts = now(CLOCK_MONOTONIC); ++ ++ if ((ts - worker->event_start_usec) > event_timeout_warn_usec) { ++ if ((ts - worker->event_start_usec) > event_timeout_usec) { ++ log_error("worker [%u] %s timeout; kill it", worker->pid, worker->event->devpath); ++ kill(worker->pid, SIGKILL); ++ worker->state = WORKER_KILLED; ++ ++ /* drop reference taken for state 'running' */ ++ worker_unref(worker); ++ log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath); ++ worker->event->exitcode = -64; ++ event_queue_delete(worker->event, true); ++ worker->event = NULL; ++ } else if (!worker->event_warned) { ++ log_warning("worker [%u] %s is taking a long time", worker->pid, worker->event->devpath); ++ worker->event_warned = true; ++ } + } + } + +-- +1.7.9.2 + diff --git a/1078-udev-remove-userspace-firmware-loading-support.patch b/1078-udev-remove-userspace-firmware-loading-support.patch new file mode 100644 index 0000000..42e0af9 --- /dev/null +++ b/1078-udev-remove-userspace-firmware-loading-support.patch @@ -0,0 +1,349 @@ +From be2ea723b1d023b3d385d3b791ee4607cbfb20ca Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 30 Aug 2014 11:34:20 +0200 +Subject: [PATCH] udev: remove userspace firmware loading support + +--- + Makefile.am | 12 --- + README | 9 +-- + TODO | 1 - + configure.ac | 20 ----- + src/udev/udev-builtin-firmware.c | 154 --------------------------------------- + src/udev/udev-builtin.c | 3 - + src/udev/udev.h | 6 -- + src/udev/udevd.c | 13 ---- + +Index: systemd-210/configure.ac +=================================================================== +--- systemd-210.orig/configure.ac ++++ systemd-210/configure.ac +@@ -902,25 +902,6 @@ if test "x$have_myhostname" != "xno"; th + fi + + # ------------------------------------------------------------------------------ +-AC_ARG_WITH(firmware-path, +- AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], +- [Firmware search path (default="")]), +- [], [with_firmware_path=""]) +-OLD_IFS=$IFS +-IFS=: +-for i in $with_firmware_path; do +- if test "x${FIRMWARE_PATH}" = "x"; then +- FIRMWARE_PATH="\\\"${i}/\\\"" +- else +- FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\"" +- fi +-done +-IFS=$OLD_IFS +-AC_SUBST(FIRMWARE_PATH) +-AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ]) +-AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"]) +- +-# ------------------------------------------------------------------------------ + AC_ARG_ENABLE([gudev], + AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support @<:@default=enabled@:>@]), + [], [enable_gudev=yes]) +@@ -1137,7 +1118,6 @@ AC_MSG_RESULT([ + Build Python: ${PYTHON} + Installation Python: ${PYTHON_BINARY} + sphinx binary: ${SPHINX_BUILD} +- firmware path: ${FIRMWARE_PATH} + PAM modules dir: ${with_pamlibdir} + PAM configuration dir: ${with_pamconfdir} + D-Bus policy dir: ${with_dbuspolicydir} +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2677,18 +2677,6 @@ libudev_core_la_LIBADD = \ + $(BLKID_LIBS) \ + $(KMOD_LIBS) + +-libudev_core_la_CPPFLAGS = \ +- $(AM_CPPFLAGS) \ +- -DFIRMWARE_PATH="$(FIRMWARE_PATH)" +- +-if ENABLE_FIRMWARE +-libudev_core_la_SOURCES += \ +- src/udev/udev-builtin-firmware.c +- +-dist_udevrules_DATA += \ +- rules/50-firmware.rules +-endif +- + if HAVE_KMOD + libudev_core_la_SOURCES += \ + src/udev/udev-builtin-kmod.c +Index: systemd-210/README +=================================================================== +--- systemd-210.orig/README ++++ systemd-210/README +@@ -51,14 +51,14 @@ REQUIREMENTS: + + Linux kernel >= 3.8 for Smack support + +- Udev will fail to work with the legacy layout: ++ Udev will fail to work with the legacy sysfs layout: + CONFIG_SYSFS_DEPRECATED=n + + Legacy hotplug slows down the system and confuses udev: + CONFIG_UEVENT_HELPER_PATH="" + +- Userspace firmware loading is deprecated, will go away, and +- sometimes causes problems: ++ Userspace firmware loading is not supported and should ++ be disabled in the kernel + CONFIG_FW_LOADER_USER_HELPER=n + + Some udev rules and virtualization detection relies on it: +Index: systemd-210/src/udev/udev-builtin.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin.c ++++ systemd-210/src/udev/udev-builtin.c +@@ -34,9 +34,6 @@ static const struct udev_builtin *builti + [UDEV_BUILTIN_BLKID] = &udev_builtin_blkid, + #endif + [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs, +-#ifdef HAVE_FIRMWARE +- [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware, +-#endif + [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, + [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, + [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, +Index: systemd-210/src/udev/udev-builtin-firmware.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-firmware.c ++++ /dev/null +@@ -1,157 +0,0 @@ +-/* +- * firmware - Kernel firmware loader +- * +- * Copyright (C) 2009 Piter Punk +- * Copyright (C) 2009-2011 Kay Sievers +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2 of the +- * License, or (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details:* +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "udev.h" +- +-static bool set_loading(struct udev *udev, char *loadpath, const char *state) +-{ +- FILE *ldfile; +- +- ldfile = fopen(loadpath, "we"); +- if (ldfile == NULL) { +- log_error("error: can not open '%s'", loadpath); +- return false; +- }; +- fprintf(ldfile, "%s\n", state); +- fclose(ldfile); +- return true; +-} +- +-static bool copy_firmware(struct udev *udev, const char *source, const char *target, size_t size) +-{ +- char *buf; +- FILE *fsource = NULL, *ftarget = NULL; +- bool ret = false; +- +- buf = malloc(size); +- if (buf == NULL) { +- log_error("No memory available to load firmware file"); +- return false; +- } +- +- log_debug("writing '%s' (%zi) to '%s'", source, size, target); +- +- fsource = fopen(source, "re"); +- if (fsource == NULL) +- goto exit; +- ftarget = fopen(target, "we"); +- if (ftarget == NULL) +- goto exit; +- if (fread(buf, size, 1, fsource) != 1) +- goto exit; +- if (fwrite(buf, size, 1, ftarget) == 1) +- ret = true; +-exit: +- if (ftarget != NULL) +- fclose(ftarget); +- if (fsource != NULL) +- fclose(fsource); +- free(buf); +- return ret; +-} +- +-static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], bool test) +-{ +- struct udev *udev = udev_device_get_udev(dev); +- static const char *searchpath[] = { FIRMWARE_PATH }; +- char loadpath[UTIL_PATH_SIZE]; +- char datapath[UTIL_PATH_SIZE]; +- char fwpath[UTIL_PATH_SIZE]; +- const char *firmware; +- FILE *fwfile = NULL; +- struct utsname kernel; +- struct stat statbuf; +- unsigned int i; +- int rc = EXIT_SUCCESS; +- +- firmware = udev_device_get_property_value(dev, "FIRMWARE"); +- if (firmware == NULL) { +- log_error("firmware parameter missing"); +- rc = EXIT_FAILURE; +- goto exit; +- } +- +- /* lookup firmware file */ +- uname(&kernel); +- for (i = 0; i < ELEMENTSOF(searchpath); i++) { +- strscpyl(fwpath, sizeof(fwpath), searchpath[i], kernel.release, "/", firmware, NULL); +- fwfile = fopen(fwpath, "re"); +- if (fwfile != NULL) +- break; +- +- strscpyl(fwpath, sizeof(fwpath), searchpath[i], firmware, NULL); +- fwfile = fopen(fwpath, "re"); +- if (fwfile != NULL) +- break; +- } +- +- strscpyl(loadpath, sizeof(loadpath), udev_device_get_syspath(dev), "/loading", NULL); +- +- if (fwfile == NULL) { +- log_debug("did not find firmware file '%s'", firmware); +- rc = EXIT_FAILURE; +- /* +- * Do not cancel the request in the initrd, the real root might have +- * the firmware file and the 'coldplug' run in the real root will find +- * this pending request and fulfill or cancel it. +- * */ +- if (!in_initrd()) +- set_loading(udev, loadpath, "-1"); +- goto exit; +- } +- +- if (stat(fwpath, &statbuf) < 0 || statbuf.st_size == 0) { +- if (!in_initrd()) +- set_loading(udev, loadpath, "-1"); +- rc = EXIT_FAILURE; +- goto exit; +- } +- +- if (!set_loading(udev, loadpath, "1")) +- goto exit; +- +- strscpyl(datapath, sizeof(datapath), udev_device_get_syspath(dev), "/data", NULL); +- if (!copy_firmware(udev, fwpath, datapath, statbuf.st_size)) { +- log_error("error sending firmware '%s' to device", firmware); +- set_loading(udev, loadpath, "-1"); +- rc = EXIT_FAILURE; +- goto exit; +- }; +- +- set_loading(udev, loadpath, "0"); +-exit: +- if (fwfile) +- fclose(fwfile); +- return rc; +-} +- +-const struct udev_builtin udev_builtin_firmware = { +- .name = "firmware", +- .cmd = builtin_firmware, +- .help = "kernel firmware loader", +- .run_once = true, +-}; +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -100,9 +100,6 @@ struct event { + dev_t devnum; + int ifindex; + bool is_block; +-#ifdef HAVE_FIRMWARE +- bool nodelay; +-#endif + }; + + static inline struct event *node_to_event(struct udev_list_node *node) +@@ -474,10 +471,6 @@ static int event_queue_insert(struct ude + event->devnum = udev_device_get_devnum(dev); + event->is_block = streq("block", udev_device_get_subsystem(dev)); + event->ifindex = udev_device_get_ifindex(dev); +-#ifdef HAVE_FIRMWARE +- if (streq(udev_device_get_subsystem(dev), "firmware")) +- event->nodelay = true; +-#endif + + udev_queue_export_device_queued(udev_queue_export, dev); + log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev), +@@ -557,12 +550,6 @@ static bool is_devpath_busy(struct event + return true; + } + +-#ifdef HAVE_FIRMWARE +- /* allow to bypass the dependency tracking */ +- if (event->nodelay) +- continue; +-#endif +- + /* parent device event found */ + if (event->devpath[common] == '/') { + event->delaying_seqnum = loop_event->seqnum; +Index: systemd-210/src/udev/udev.h +=================================================================== +--- systemd-210.orig/src/udev/udev.h ++++ systemd-210/src/udev/udev.h +@@ -141,9 +141,6 @@ enum udev_builtin_cmd { + UDEV_BUILTIN_BLKID, + #endif + UDEV_BUILTIN_BTRFS, +-#ifdef HAVE_FIRMWARE +- UDEV_BUILTIN_FIRMWARE, +-#endif + UDEV_BUILTIN_HWDB, + UDEV_BUILTIN_INPUT_ID, + UDEV_BUILTIN_KEYBOARD, +@@ -172,9 +169,6 @@ struct udev_builtin { + extern const struct udev_builtin udev_builtin_blkid; + #endif + extern const struct udev_builtin udev_builtin_btrfs; +-#ifdef HAVE_FIRMWARE +-extern const struct udev_builtin udev_builtin_firmware; +-#endif + extern const struct udev_builtin udev_builtin_hwdb; + extern const struct udev_builtin udev_builtin_input_id; + extern const struct udev_builtin udev_builtin_keyboard; +Index: systemd-210/TODO +=================================================================== +--- systemd-210.orig/TODO ++++ systemd-210/TODO +@@ -541,7 +541,6 @@ Features: + * ExecOnFailure=/usr/bin/foo + + * udev: +- - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n) + - move to LGPL + - kill scsi_id + - add trigger --subsystem-match=usb/usb_device device + diff --git a/1079-udev-remove-userspace-firmware-loading-support.patch b/1079-udev-remove-userspace-firmware-loading-support.patch new file mode 100644 index 0000000..37a5e75 --- /dev/null +++ b/1079-udev-remove-userspace-firmware-loading-support.patch @@ -0,0 +1,349 @@ +From be2ea723b1d023b3d385d3b791ee4607cbfb20ca Mon Sep 17 00:00:00 2001 +From: Kay Sievers +Date: Sat, 30 Aug 2014 11:34:20 +0200 +Subject: [PATCH] udev: remove userspace firmware loading support + +--- + Makefile.am | 12 --- + README | 9 +-- + TODO | 1 - + configure.ac | 20 ----- + src/udev/udev-builtin-firmware.c | 154 --------------------------------------- + src/udev/udev-builtin.c | 3 - + src/udev/udev.h | 6 -- + src/udev/udevd.c | 13 ---- + +Index: systemd-210/configure.ac +=================================================================== +--- systemd-210.orig/configure.ac ++++ systemd-210/configure.ac +@@ -902,25 +902,6 @@ if test "x$have_myhostname" != "xno"; th + fi + + # ------------------------------------------------------------------------------ +-AC_ARG_WITH(firmware-path, +- AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], +- [Firmware search path (default="")]), +- [], [with_firmware_path=""]) +-OLD_IFS=$IFS +-IFS=: +-for i in $with_firmware_path; do +- if test "x${FIRMWARE_PATH}" = "x"; then +- FIRMWARE_PATH="\\\"${i}/\\\"" +- else +- FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\"" +- fi +-done +-IFS=$OLD_IFS +-AC_SUBST(FIRMWARE_PATH) +-AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ]) +-AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"]) +- +-# ------------------------------------------------------------------------------ + AC_ARG_ENABLE([gudev], + AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support @<:@default=enabled@:>@]), + [], [enable_gudev=yes]) +@@ -1137,7 +1118,6 @@ AC_MSG_RESULT([ + Build Python: ${PYTHON} + Installation Python: ${PYTHON_BINARY} + sphinx binary: ${SPHINX_BUILD} +- firmware path: ${FIRMWARE_PATH} + PAM modules dir: ${with_pamlibdir} + PAM configuration dir: ${with_pamconfdir} + D-Bus policy dir: ${with_dbuspolicydir} +Index: systemd-210/Makefile.am +=================================================================== +--- systemd-210.orig/Makefile.am ++++ systemd-210/Makefile.am +@@ -2677,18 +2677,6 @@ libudev_core_la_LIBADD = \ + $(BLKID_LIBS) \ + $(KMOD_LIBS) + +-libudev_core_la_CPPFLAGS = \ +- $(AM_CPPFLAGS) \ +- -DFIRMWARE_PATH="$(FIRMWARE_PATH)" +- +-if ENABLE_FIRMWARE +-libudev_core_la_SOURCES += \ +- src/udev/udev-builtin-firmware.c +- +-dist_udevrules_DATA += \ +- rules/50-firmware.rules +-endif +- + if HAVE_KMOD + libudev_core_la_SOURCES += \ + src/udev/udev-builtin-kmod.c +Index: systemd-210/README +=================================================================== +--- systemd-210.orig/README ++++ systemd-210/README +@@ -51,14 +51,14 @@ REQUIREMENTS: + + Linux kernel >= 3.8 for Smack support + +- Udev will fail to work with the legacy layout: ++ Udev will fail to work with the legacy sysfs layout: + CONFIG_SYSFS_DEPRECATED=n + + Legacy hotplug slows down the system and confuses udev: + CONFIG_UEVENT_HELPER_PATH="" + +- Userspace firmware loading is deprecated, will go away, and +- sometimes causes problems: ++ Userspace firmware loading is not supported and should ++ be disabled in the kernel + CONFIG_FW_LOADER_USER_HELPER=n + + Some udev rules and virtualization detection relies on it: +Index: systemd-210/src/udev/udev-builtin.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin.c ++++ systemd-210/src/udev/udev-builtin.c +@@ -34,9 +34,6 @@ static const struct udev_builtin *builti + [UDEV_BUILTIN_BLKID] = &udev_builtin_blkid, + #endif + [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs, +-#ifdef HAVE_FIRMWARE +- [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware, +-#endif + [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, + [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, + [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, +Index: systemd-210/src/udev/udev-builtin-firmware.c +=================================================================== +--- systemd-210.orig/src/udev/udev-builtin-firmware.c ++++ /dev/null +@@ -1,157 +0,0 @@ +-/* +- * firmware - Kernel firmware loader +- * +- * Copyright (C) 2009 Piter Punk +- * Copyright (C) 2009-2011 Kay Sievers +- * +- * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License as +- * published by the Free Software Foundation; either version 2 of the +- * License, or (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, but +- * WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details:* +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "udev.h" +- +-static bool set_loading(struct udev *udev, char *loadpath, const char *state) +-{ +- FILE *ldfile; +- +- ldfile = fopen(loadpath, "we"); +- if (ldfile == NULL) { +- log_error("error: can not open '%s'", loadpath); +- return false; +- }; +- fprintf(ldfile, "%s\n", state); +- fclose(ldfile); +- return true; +-} +- +-static bool copy_firmware(struct udev *udev, const char *source, const char *target, size_t size) +-{ +- char *buf; +- FILE *fsource = NULL, *ftarget = NULL; +- bool ret = false; +- +- buf = malloc(size); +- if (buf == NULL) { +- log_error("No memory available to load firmware file"); +- return false; +- } +- +- log_debug("writing '%s' (%zi) to '%s'", source, size, target); +- +- fsource = fopen(source, "re"); +- if (fsource == NULL) +- goto exit; +- ftarget = fopen(target, "we"); +- if (ftarget == NULL) +- goto exit; +- if (fread(buf, size, 1, fsource) != 1) +- goto exit; +- if (fwrite(buf, size, 1, ftarget) == 1) +- ret = true; +-exit: +- if (ftarget != NULL) +- fclose(ftarget); +- if (fsource != NULL) +- fclose(fsource); +- free(buf); +- return ret; +-} +- +-static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], bool test) +-{ +- struct udev *udev = udev_device_get_udev(dev); +- static const char *searchpath[] = { FIRMWARE_PATH }; +- char loadpath[UTIL_PATH_SIZE]; +- char datapath[UTIL_PATH_SIZE]; +- char fwpath[UTIL_PATH_SIZE]; +- const char *firmware; +- FILE *fwfile = NULL; +- struct utsname kernel; +- struct stat statbuf; +- unsigned int i; +- int rc = EXIT_SUCCESS; +- +- firmware = udev_device_get_property_value(dev, "FIRMWARE"); +- if (firmware == NULL) { +- log_error("firmware parameter missing"); +- rc = EXIT_FAILURE; +- goto exit; +- } +- +- /* lookup firmware file */ +- uname(&kernel); +- for (i = 0; i < ELEMENTSOF(searchpath); i++) { +- strscpyl(fwpath, sizeof(fwpath), searchpath[i], kernel.release, "/", firmware, NULL); +- fwfile = fopen(fwpath, "re"); +- if (fwfile != NULL) +- break; +- +- strscpyl(fwpath, sizeof(fwpath), searchpath[i], firmware, NULL); +- fwfile = fopen(fwpath, "re"); +- if (fwfile != NULL) +- break; +- } +- +- strscpyl(loadpath, sizeof(loadpath), udev_device_get_syspath(dev), "/loading", NULL); +- +- if (fwfile == NULL) { +- log_debug("did not find firmware file '%s'", firmware); +- rc = EXIT_FAILURE; +- /* +- * Do not cancel the request in the initrd, the real root might have +- * the firmware file and the 'coldplug' run in the real root will find +- * this pending request and fulfill or cancel it. +- * */ +- if (!in_initrd()) +- set_loading(udev, loadpath, "-1"); +- goto exit; +- } +- +- if (stat(fwpath, &statbuf) < 0 || statbuf.st_size == 0) { +- if (!in_initrd()) +- set_loading(udev, loadpath, "-1"); +- rc = EXIT_FAILURE; +- goto exit; +- } +- +- if (!set_loading(udev, loadpath, "1")) +- goto exit; +- +- strscpyl(datapath, sizeof(datapath), udev_device_get_syspath(dev), "/data", NULL); +- if (!copy_firmware(udev, fwpath, datapath, statbuf.st_size)) { +- log_error("error sending firmware '%s' to device", firmware); +- set_loading(udev, loadpath, "-1"); +- rc = EXIT_FAILURE; +- goto exit; +- }; +- +- set_loading(udev, loadpath, "0"); +-exit: +- if (fwfile) +- fclose(fwfile); +- return rc; +-} +- +-const struct udev_builtin udev_builtin_firmware = { +- .name = "firmware", +- .cmd = builtin_firmware, +- .help = "kernel firmware loader", +- .run_once = true, +-}; +Index: systemd-210/src/udev/udevd.c +=================================================================== +--- systemd-210.orig/src/udev/udevd.c ++++ systemd-210/src/udev/udevd.c +@@ -100,9 +100,6 @@ struct event { + dev_t devnum; + int ifindex; + bool is_block; +-#ifdef HAVE_FIRMWARE +- bool nodelay; +-#endif + }; + + static inline struct event *node_to_event(struct udev_list_node *node) +@@ -474,10 +471,6 @@ static int event_queue_insert(struct ude + event->devnum = udev_device_get_devnum(dev); + event->is_block = streq("block", udev_device_get_subsystem(dev)); + event->ifindex = udev_device_get_ifindex(dev); +-#ifdef HAVE_FIRMWARE +- if (streq(udev_device_get_subsystem(dev), "firmware")) +- event->nodelay = true; +-#endif + + log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev), + udev_device_get_action(dev), udev_device_get_subsystem(dev)); +@@ -557,12 +550,6 @@ static bool is_devpath_busy(struct event + return true; + } + +-#ifdef HAVE_FIRMWARE +- /* allow to bypass the dependency tracking */ +- if (event->nodelay) +- continue; +-#endif +- + /* parent device event found */ + if (event->devpath[common] == '/') { + event->delaying_seqnum = loop_event->seqnum; +Index: systemd-210/src/udev/udev.h +=================================================================== +--- systemd-210.orig/src/udev/udev.h ++++ systemd-210/src/udev/udev.h +@@ -141,9 +141,6 @@ enum udev_builtin_cmd { + UDEV_BUILTIN_BLKID, + #endif + UDEV_BUILTIN_BTRFS, +-#ifdef HAVE_FIRMWARE +- UDEV_BUILTIN_FIRMWARE, +-#endif + UDEV_BUILTIN_HWDB, + UDEV_BUILTIN_INPUT_ID, + UDEV_BUILTIN_KEYBOARD, +@@ -172,9 +169,6 @@ struct udev_builtin { + extern const struct udev_builtin udev_builtin_blkid; + #endif + extern const struct udev_builtin udev_builtin_btrfs; +-#ifdef HAVE_FIRMWARE +-extern const struct udev_builtin udev_builtin_firmware; +-#endif + extern const struct udev_builtin udev_builtin_hwdb; + extern const struct udev_builtin udev_builtin_input_id; + extern const struct udev_builtin udev_builtin_keyboard; +Index: systemd-210/TODO +=================================================================== +--- systemd-210.orig/TODO ++++ systemd-210/TODO +@@ -541,7 +541,6 @@ Features: + * ExecOnFailure=/usr/bin/foo + + * udev: +- - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n) + - move to LGPL + - kill scsi_id + - add trigger --subsystem-match=usb/usb_device device + diff --git a/systemd-mini.changes b/systemd-mini.changes index dca120b..6299a5c 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,63 @@ +------------------------------------------------------------------- +Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de + +- Add upstream patches as real fixes + 0001-activate-fix-fd-leak-in-do_accept.patch + 0002-analyze-avoid-a-null-dereference.patch + 0003-analyze-fix-mem-leak.patch + 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + 0006-bus-unref-buscreds-on-failure.patch + 0007-core-fix-a-potential-mem-leak.patch + 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + 0009-journal-do-not-leak-mmaps-on-OOM.patch + 0010-manager-use-correct-cleanup-function.patch +- Intergrate the work of Robert and rename the patch + 1068-udev-remove-userspace-firmware-loading-support.patch + to 1078-udev-remove-userspace-firmware-loading-support.patch + Also add patch + 1079-udev-remove-userspace-firmware-loading-support.patch + to apply the same change for opensuse 13.2 and above + +------------------------------------------------------------------- +Tue Sep 16 10:21:02 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-systemctl-allow-to-change-the-default-target-without.patch + to allow to override default target without --force (bnc#896664) + +------------------------------------------------------------------- +Tue Sep 16 09:10:52 UTC 2014 - werner@suse.de + +- Add upstream patches for udev + 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + 1070-rules-net-setup-link-remove-stray-linebreak.patch + 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + 1072-udev-netif_rename-don-t-log-to-kmsg.patch + 1073-udev-drop-print_kmsg.patch + 1074-udev-fix-copy-paste-error-in-log-message.patch + 1075-udev-timeout-increase-timeout.patch (bnc#889297) + 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297) + 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297) + +------------------------------------------------------------------- +Tue Sep 16 07:55:37 UTC 2014 - rmilasan@suse.com + +- udev: remove userspace firmware loading support (bnc#889297). + Add 1068-udev-remove-userspace-firmware-loading-support.patch + +------------------------------------------------------------------- +Sat Sep 13 13:35:33 UTC 2014 - rmilasan@suse.com + +- udev: always resolve correctly database names on 'change' event (bnc#864745). + Add 1067-udev-always-resolve-correctly-database-names-on-chan.patch + +------------------------------------------------------------------- +Tue Sep 9 14:36:20 UTC 2014 - werner@suse.de + +- Add upstream patch 0009-hwdb-update.patch + ------------------------------------------------------------------- Mon Sep 8 14:48:37 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 978f7b3..09ccb39 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -832,6 +832,30 @@ Patch400: 0001-login-simplify-controller-handling.patch Patch401: 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch # PATCH-FIX-UPSTREAM added at 2014/09/08 Patch402: 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/09/09 +Patch403: 0009-hwdb-update.patch +# PATCH-FIX-UPSTREAM bnc896664: Allow to override default target without --force +Patch404: 0001-systemctl-allow-to-change-the-default-target-without.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch405: 0001-activate-fix-fd-leak-in-do_accept.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch406: 0002-analyze-avoid-a-null-dereference.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch407: 0003-analyze-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch408: 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch409: 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch410: 0006-bus-unref-buscreds-on-failure.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch411: 0007-core-fix-a-potential-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch413: 0009-journal-do-not-leak-mmaps-on-OOM.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch414: 0010-manager-use-correct-cleanup-function.patch # UDEV PATCHES # ============ @@ -971,6 +995,32 @@ Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch Patch1065: 1065-udev-bump-event-timeout-to-60-seconds.patch # PATCH-FIX-SUSE 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch (bnc#886852) Patch1066: 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +# PATCH-FIX-UPSTREAM 1067-udev-always-resolve-correctly-database-names-on-chan.patch (bnc#864745) +Patch1067: 1067-udev-always-resolve-correctly-database-names-on-chan.patch +# PATCH-FIX-UPSTREAM 1068-udev-net_setup_link-export-the-.link-filename-applie.patch +Patch1068: 1068-udev-net_setup_link-export-the-.link-filename-applie.patch +# PATCH-FIX-UPSTREAM 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +Patch1069: 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +# PATCH-FIX-UPSTREAM 1070-rules-net-setup-link-remove-stray-linebreak.patch +Patch1070: 1070-rules-net-setup-link-remove-stray-linebreak.patch +# PATCH-FIX-UPSTREAM 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +Patch1071: 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +# PATCH-FIX-UPSTREAM 1072-udev-netif_rename-don-t-log-to-kmsg.patch +Patch1072: 1072-udev-netif_rename-don-t-log-to-kmsg.patch +# PATCH-FIX-UPSTREAM 1073-udev-drop-print_kmsg.patch +Patch1073: 1073-udev-drop-print_kmsg.patch +# PATCH-FIX-UPSTREAM 1074-udev-fix-copy-paste-error-in-log-message.patch +Patch1074: 1074-udev-fix-copy-paste-error-in-log-message.patch +# PATCH-FIX-UPSTREAM 1075-udev-timeout-increase-timeout.patch +Patch1075: 1075-udev-timeout-increase-timeout.patch +# PATCH-FIX-UPSTREAM 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +Patch1076: 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +# PATCH-FIX-UPSTREAM 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +# PATCH-FIX-UPSTREAM 1078-udev-remove-userspace-firmware-loading-support.patch +Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch +# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch +Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1534,6 +1584,18 @@ cp %{SOURCE7} m4/ %patch400 -p0 %patch401 -p0 %patch402 -p0 +%patch403 -p0 +%patch404 -p0 +%patch405 -p0 +%patch406 -p0 +%patch407 -p0 +%patch408 -p0 +%patch409 -p0 +%patch410 -p0 +%patch411 -p0 +%patch412 -p0 +%patch413 -p0 +%patch414 -p0 # udev patches %patch1001 -p1 @@ -1623,6 +1685,27 @@ cp %{SOURCE7} m4/ %patch1064 -p0 %patch1065 -p0 %patch1066 -p1 +%patch1067 -p1 +%patch1068 -p0 +%patch1069 -p0 +%patch1070 -p0 +%patch1071 -p0 +%patch1072 -p0 +%patch1073 -p0 +%patch1074 -p0 +%patch1075 -p0 +%if %{with udevsettle} +%patch1076 -p0 +%else +%patch1077 -p0 +%endif +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1079 -p1 +%else +%patch1078 -p1 +%endif +%endif # remove patch backups find -name '*.orig' -exec rm -f '{}' \+ diff --git a/systemd.changes b/systemd.changes index dca120b..6299a5c 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,63 @@ +------------------------------------------------------------------- +Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de + +- Add upstream patches as real fixes + 0001-activate-fix-fd-leak-in-do_accept.patch + 0002-analyze-avoid-a-null-dereference.patch + 0003-analyze-fix-mem-leak.patch + 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch + 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch + 0006-bus-unref-buscreds-on-failure.patch + 0007-core-fix-a-potential-mem-leak.patch + 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch + 0009-journal-do-not-leak-mmaps-on-OOM.patch + 0010-manager-use-correct-cleanup-function.patch +- Intergrate the work of Robert and rename the patch + 1068-udev-remove-userspace-firmware-loading-support.patch + to 1078-udev-remove-userspace-firmware-loading-support.patch + Also add patch + 1079-udev-remove-userspace-firmware-loading-support.patch + to apply the same change for opensuse 13.2 and above + +------------------------------------------------------------------- +Tue Sep 16 10:21:02 UTC 2014 - werner@suse.de + +- Add upstream patch + 0001-systemctl-allow-to-change-the-default-target-without.patch + to allow to override default target without --force (bnc#896664) + +------------------------------------------------------------------- +Tue Sep 16 09:10:52 UTC 2014 - werner@suse.de + +- Add upstream patches for udev + 1068-udev-net_setup_link-export-the-.link-filename-applie.patch + 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch + 1070-rules-net-setup-link-remove-stray-linebreak.patch + 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch + 1072-udev-netif_rename-don-t-log-to-kmsg.patch + 1073-udev-drop-print_kmsg.patch + 1074-udev-fix-copy-paste-error-in-log-message.patch + 1075-udev-timeout-increase-timeout.patch (bnc#889297) + 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297) + 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297) + +------------------------------------------------------------------- +Tue Sep 16 07:55:37 UTC 2014 - rmilasan@suse.com + +- udev: remove userspace firmware loading support (bnc#889297). + Add 1068-udev-remove-userspace-firmware-loading-support.patch + +------------------------------------------------------------------- +Sat Sep 13 13:35:33 UTC 2014 - rmilasan@suse.com + +- udev: always resolve correctly database names on 'change' event (bnc#864745). + Add 1067-udev-always-resolve-correctly-database-names-on-chan.patch + +------------------------------------------------------------------- +Tue Sep 9 14:36:20 UTC 2014 - werner@suse.de + +- Add upstream patch 0009-hwdb-update.patch + ------------------------------------------------------------------- Mon Sep 8 14:48:37 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 02c895a..17b4372 100644 --- a/systemd.spec +++ b/systemd.spec @@ -827,6 +827,30 @@ Patch400: 0001-login-simplify-controller-handling.patch Patch401: 0001-initrd-parse-etc.service-ignore-return-code-of-daemo.patch # PATCH-FIX-UPSTREAM added at 2014/09/08 Patch402: 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch +# PATCH-FIX-UPSTREAM added at 2014/09/09 +Patch403: 0009-hwdb-update.patch +# PATCH-FIX-UPSTREAM bnc896664: Allow to override default target without --force +Patch404: 0001-systemctl-allow-to-change-the-default-target-without.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch405: 0001-activate-fix-fd-leak-in-do_accept.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch406: 0002-analyze-avoid-a-null-dereference.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch407: 0003-analyze-fix-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch408: 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch409: 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch410: 0006-bus-unref-buscreds-on-failure.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch411: 0007-core-fix-a-potential-mem-leak.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch413: 0009-journal-do-not-leak-mmaps-on-OOM.patch +# PATCH-FIX-UPSTREAM added at 2014/09/16 +Patch414: 0010-manager-use-correct-cleanup-function.patch # UDEV PATCHES # ============ @@ -966,6 +990,32 @@ Patch1064: 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch Patch1065: 1065-udev-bump-event-timeout-to-60-seconds.patch # PATCH-FIX-SUSE 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch (bnc#886852) Patch1066: 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch +# PATCH-FIX-UPSTREAM 1067-udev-always-resolve-correctly-database-names-on-chan.patch (bnc#864745) +Patch1067: 1067-udev-always-resolve-correctly-database-names-on-chan.patch +# PATCH-FIX-UPSTREAM 1068-udev-net_setup_link-export-the-.link-filename-applie.patch +Patch1068: 1068-udev-net_setup_link-export-the-.link-filename-applie.patch +# PATCH-FIX-UPSTREAM 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +Patch1069: 1069-rules-net-setup-link-preserve-ID_NET_LINK_FILE-and-I.patch +# PATCH-FIX-UPSTREAM 1070-rules-net-setup-link-remove-stray-linebreak.patch +Patch1070: 1070-rules-net-setup-link-remove-stray-linebreak.patch +# PATCH-FIX-UPSTREAM 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +Patch1071: 1071-udev-import-the-full-db-on-MOVE-events-for-devices-w.patch +# PATCH-FIX-UPSTREAM 1072-udev-netif_rename-don-t-log-to-kmsg.patch +Patch1072: 1072-udev-netif_rename-don-t-log-to-kmsg.patch +# PATCH-FIX-UPSTREAM 1073-udev-drop-print_kmsg.patch +Patch1073: 1073-udev-drop-print_kmsg.patch +# PATCH-FIX-UPSTREAM 1074-udev-fix-copy-paste-error-in-log-message.patch +Patch1074: 1074-udev-fix-copy-paste-error-in-log-message.patch +# PATCH-FIX-UPSTREAM 1075-udev-timeout-increase-timeout.patch +Patch1075: 1075-udev-timeout-increase-timeout.patch +# PATCH-FIX-UPSTREAM 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +Patch1076: 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +# PATCH-FIX-UPSTREAM 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch +# PATCH-FIX-UPSTREAM 1078-udev-remove-userspace-firmware-loading-support.patch +Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch +# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch +Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -1529,6 +1579,18 @@ cp %{SOURCE7} m4/ %patch400 -p0 %patch401 -p0 %patch402 -p0 +%patch403 -p0 +%patch404 -p0 +%patch405 -p0 +%patch406 -p0 +%patch407 -p0 +%patch408 -p0 +%patch409 -p0 +%patch410 -p0 +%patch411 -p0 +%patch412 -p0 +%patch413 -p0 +%patch414 -p0 # udev patches %patch1001 -p1 @@ -1618,6 +1680,27 @@ cp %{SOURCE7} m4/ %patch1064 -p0 %patch1065 -p0 %patch1066 -p1 +%patch1067 -p1 +%patch1068 -p0 +%patch1069 -p0 +%patch1070 -p0 +%patch1071 -p0 +%patch1072 -p0 +%patch1073 -p0 +%patch1074 -p0 +%patch1075 -p0 +%if %{with udevsettle} +%patch1076 -p0 +%else +%patch1077 -p0 +%endif +%if 0%{?suse_version} > 1310 +%if %{with udevsettle} +%patch1079 -p1 +%else +%patch1078 -p1 +%endif +%endif # remove patch backups find -name '*.orig' -exec rm -f '{}' \+